ringline-h2
Sans-IO HTTP/2 client framing layer.
A pure sans-IO HTTP/2 client framing layer with zero runtime dependencies.
The caller feeds bytes in via recv() and pulls bytes out via
take_pending_send().
Architecture
TCP + TLS bytes
|
+----v----------+
| ringline-h2 | HTTP/2 framing + HPACK
| H2Connection | H2Event: Response, Data, Trailers, etc.
+---------------+
Quick Start
use ;
let mut h2 = new;
// Send the connection preface to the transport.
let preface = h2.take_pending_send;
transport_send;
// Send a GET request.
let stream_id = h2.send_request?;
transport_send;
// Feed received bytes and drain events.
h2.recv?;
while let Some = h2.poll_event
Features
- HTTP/2 frame encoding/decoding (DATA, HEADERS, SETTINGS, WINDOW_UPDATE, PING, GOAWAY, RST_STREAM)
- HPACK header compression with dynamic table
- Stream multiplexing with per-stream and connection-level flow control
- Zero runtime dependencies -- pure
recv()/take_pending_send()interface