A pure Crystal (but incomplete) implementation of the HTTP/2 protocol.
Requires OpenSSL 1.1 or above to support ALPN protocol negotiation, which is required for HTTP/2 over secure connections.
HPACK (including DH compression)
HTTP/2 connection, streams, frames, ...
HTTP/2 flow control (in/out, whole-connection, per-stream)
support HTTP/2 server connections
integrate transparently into (broken)
HTTP::Server::Context (http version, server-push)
support HTTP/2 client connections
HPACK tests (HTTP/2 protocol, ...)
HTTP/2 server unit tests (HTTP/2 protocol, ...)
HTTP/2 client unit tests (HTTP/2 protocol, ...)
Build and run the
bin/server server, then launch
$ make bin/server
Test against HTTP:
$ bin/server $ ./h2spec -p 9292 -S
Test against HTTPS:
$ TLS=true bin/server $ ./h2spec -p 9292 -k -t -S