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.
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:
config::enc_thr.