Skip to content

Design document for the new serialzier #288

Description

@ashtum

The http serializer in the burl project are improved versions of those in this project. We need a design document that explains the rationale behind each change.

The document should include (not limited to) changes like:

  • Bodies can now be sourced from external buffers without any copies.
  • Messages with an unknown length that fit in the internal buffer get a proper Content-Length field before sending.
  • Messages with an encoder can skip encoding when the finished payload is smaller than config::enc_thr.
  • Small buffers are coalesced before writing to reduce the number of writes.
  • Chunked framing now supports trailer headers.
  • The config struct is now lean and copied into the serializer, eliminating the need for a shared config object.
  • Each message receives its encoder through a polymorphic interface instead of reaching for installed services; the caller is responsible for constructing and supplying the appropriate encoder when needed.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Status
In progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions