A pure Crystal implementation of the HTTP/2 protocol, enabling HTTP/2 support for Crystal HTTP servers.
HTTP/2 is a pure Crystal implementation of the HTTP/2 protocol, enabling Crystal-based HTTP servers to support modern HTTP/2 features like multiplexing, header compression, and flow control. It solves the need for native, high-performance HTTP/2 support within the Crystal ecosystem, allowing developers to build faster and more efficient web applications without relying on external tools or proxies.
Crystal developers building web servers or applications that require HTTP/2 support, particularly those using Crystal's standard `HTTP::Server` or frameworks built on top of it.
Developers choose this library because it provides a seamless, dependency-free integration with Crystal's HTTP stack, offering full protocol compliance and performance optimizations specific to the language, unlike generic or language-agnostic solutions.
HTTP/2 Protocol Implementation for the Crystal Language
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Just requiring 'http2/server' makes any `HTTP::Server` instance HTTP/2 compliant, with minimal code changes—ideal for existing Crystal web frameworks.
Implements full HTTP/2 including HPACK compression and flow control, and passes h2spec 2.6.0, ensuring robust standards compliance.
Pure Crystal code avoids external dependencies, offering high performance and seamless integration with the language's ecosystem.
Supports HTTP/1 to HTTP/2 upgrades, facilitating backward compatibility for legacy servers without requiring immediate protocol switches.
HTTP/2 client connections are implemented but not integrated into `HTTP::Client`, limiting its use for client-side applications and full-stack development.
Major browsers require TLS for HTTP/2, forcing SSL certificate setup even for local development, adding complexity and potential security overhead.
Compliance testing relies on h2spec 2.6.0 from 2020, which may not fully align with the updated HTTP/2 RFC 9113 from 2022, raising concerns about current standard adherence.