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.12k stars 194 forks source link

Draft: introduce multiplexed SessionState to handle heterogeneous HTTP Sessions #1104

Open Wonshtrum opened 6 months ago

Wonshtrum commented 6 months ago

In an effort to bring HTTP2 support into Sozu, we introduce Mux. Mux is a SessionState that replaces the current kawa_h1 HTTP State. Mux is able to handle HTTP1 and HTTP2 clients and backends as well as multiple backend connections. Mux operates on the level of kawa streams, separating the protocol details in self-contained units, and can seamlessly translate between HTTP1 and HTTP2.

Keksoj commented 4 months ago

To be rebased on main, this PR needs Kawa 6.7 published on crates.io, because this Kawa PR was needed and has sinced been merged: https://github.com/CleverCloud/kawa/pull/13

Todo: