[ANN] http-2 1.1.0 released
http-2 1.1.0 has been released.
https://github.com/igrigorik/http-2
Pure Ruby, framework and transport agnostic, implementation of HTTP/2 protocol and HPACK header compression with support for:
- Binary framing parsing and encoding
- Stream multiplexing and prioritization
- Connection and stream flow control
- Header compression and server push
- Connection and stream management
- And more… see API docs
Protocol specifications:
Here are the updates since the last release:
1.1.0Several changes which improved performance for the common cases. A few highlights:
- Opting into ruby 3.4 features when possible (such as
String#append_as_bytes
instead ofString#<<
) - reducing string and array allocations on several places (connection management, frame generation, hpack header compression, etc)
- “streams recently closed” not having to regenerate the list when not necessary
- Freezing static tables (used for header huffman coding) correctly. This makes them shareable, which makes
http-2
usable across ractors. - Moved buffer helpers from String refinements into mixins. Refinements impose a relevant performance penalty, unfortunately, despite its cleaner API.
- discard closed streams from the connection (reduces memory consumption).
- allow RST_STREAM frames to be ignored on closed streams.
- prevent already closed streams from being initialized again.
Post a comment