http2 alternatives and similar shards
Based on the "HTTP" category.
Alternatively, view http2 alternatives based on common mentions on social networks and blogs.
-
halite
💎HTTP Requests Client with a chainable REST API, built-in sessions and middlewares. -
Cable
It's like ActionCable (100% compatible with JS Client), but you know, for Crystal -
cossack
Simple and flexible HTTP client for Crystal with middleware and test support. -
http-protection
This library protects against typical web attacks. It was inspired in rack-protection Ruby gem. -
crystal-routing
Extensible library to deal with http request and string based routing in Crystal -
http-params-serializable
The HTTP params parsing module for Crystal 🤓 -
http_parser.cr
Crystal wrapper for Http Parser lib: https://github.com/joyent/http-parser -
multipart.cr
Adds multipart and multipart/form-data support to the crystal standard library -
ContentDisposition
Crystal shard to create HTTP Content-Disposition headers with proper escaping/encoding of filenames -
http_distributor
http server which allows sneaky http request though it. -
crystal-cossack
Simple and flexible HTTP client for Crystal with middleware and test support.
Access the most powerful time series database as a service
Do you think we are missing an alternative of http2 or a related project?
README
HTTP
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.
TODO
- [x] HPACK (including DH compression)
- [x] HTTP/2 connection, streams, frames, ...
- [x] HTTP/2 flow control (in/out, whole-connection, per-stream)
- [ ] HTTP/2 priority
- [x] support HTTP/2 server connections
- [x]
integrate transparently into(broken)HTTP::Server
- [ ]
integrate intoHTTP::Server::Context
(http version, server-push) - [x] support HTTP/2 client connections
[ ]
integrate intoHTTP::Client
[x] HPACK tests (HTTP/2 protocol, ...)
[ ] HTTP/2 server unit tests (HTTP/2 protocol, ...)
[ ] HTTP/2 client unit tests (HTTP/2 protocol, ...)
[x] h2spec
Tests
Build and run the bin/server
server, then launch
h2spec.
$ 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
RFC
HTTP/2
- rfc7540 HTTP/2
- rfc7541 HPACK Header Compression for HTTP/2
HTTP/1
- rfc1945 HTTP/1.0 (informational)
- rfc2616 HTTP/1.1 (obsolete)
- rfc7230 HTTP/1.1 Message Syntax and Routing
- rfc7231 HTTP/1.1 Semantics and Content
- rfc7232 HTTP/1.1 Conditional Requests
- rfc7233 HTTP/1.1 Range Requests
- rfc7234 HTTP/1.1 Caching
- rfc7235 HTTP/1.1 Authentification