sozu-proxy / sozu

Sōzu HTTP reverse proxy, configurable at runtime, fast and safe, built in Rust. It is awesome!
https://www.sozu.io/
GNU Affero General Public License v3.0
3.11k stars 192 forks source link

half protocol implementations #540

Open Geal opened 6 years ago

Geal commented 6 years ago

Right now, there's a high coupling between front and back sockets in most proxy implementations, especially due to the BufferQueue implementation and the HTTP implementation.

For HTTP/2 it would be useful to separate protocol halves, ie:

We could still keep some specific implementations, to keep good performance for the HTTP 1 only proxy, or to reintroduce TCP splicing.

This work would pave the way for easy integration of new protocols, like GRPC or MQTT.

The most pressing issue: separating front and back HTTP 1 implementations. We will then be able to reuse parts of it for backend connections in the HTTP/2 proxy.

Geal commented 6 years ago

done. The configuration now uses 16393 as default buffer size, since HTTP/2 requires a minimal frame size of 16384, with 9 more bytes for the header