All Projects → ysbaddaden → Http2

ysbaddaden / Http2

Licence: other
HTTP/2 Protocol Implementation for the Crystal Language

Programming Languages

crystal
512 projects

Labels

Projects that are alternatives of or similar to Http2

Express Security
nodejs + express security and performance boilerplate.
Stars: ✭ 37 (-55.42%)
Mutual labels:  http2
Cloudflare Worker Preact Pwa
Cloudflare worker running a Preact Progressive Web App
Stars: ✭ 57 (-31.33%)
Mutual labels:  http2
H2conn
HTTP2 client-server full-duplex connection
Stars: ✭ 71 (-14.46%)
Mutual labels:  http2
Lib.web.mvc
Lib.Web.Mvc is a library which contains some helper classes for ASP.NET MVC such as strongly typed jqGrid helper, attribute and helper providing support for HTTP/2 Server Push with Cache Digest, attribute and helpers providing support for Content Security Policy Level 2, FileResult providing support for Range Requests, action result and helper providing support for XSL transformation and more.
Stars: ✭ 42 (-49.4%)
Mutual labels:  http2
Go Apns2
Go package for HTTP/2 Apple Push Notification Service.
Stars: ✭ 53 (-36.14%)
Mutual labels:  http2
Setup Nginx Webserver
🚀Setup a perfect webserver on CentOS/Redhat 7.x guide with understanding.
Stars: ✭ 65 (-21.69%)
Mutual labels:  http2
Docker Swift Apns
A collection of Docker images to build APNS providers in Swift
Stars: ✭ 34 (-59.04%)
Mutual labels:  http2
River
An HTTP/2 (HTTP2) client for Elixir (a work in progress!)
Stars: ✭ 78 (-6.02%)
Mutual labels:  http2
Grpcc
A gRPC cli interface for easy testing against gRPC servers
Stars: ✭ 1,078 (+1198.8%)
Mutual labels:  http2
Akka Http
The Streaming-first HTTP server/module of Akka
Stars: ✭ 1,163 (+1301.2%)
Mutual labels:  http2
Nico
A HTTP2 web server for reverse proxy and single page application, automatically apply for ssl certificate, Zero-Configuration.
Stars: ✭ 43 (-48.19%)
Mutual labels:  http2
Siler
⚡ Flat-files and plain-old PHP functions rockin'on as a set of general purpose high-level abstractions.
Stars: ✭ 1,056 (+1172.29%)
Mutual labels:  http2
Grpc Rust
Rust implementation of gRPC
Stars: ✭ 1,139 (+1272.29%)
Mutual labels:  http2
Katwebx
An extremely fast static web server and reverse proxy for the modern web.
Stars: ✭ 39 (-53.01%)
Mutual labels:  http2
Labench
Latency Benchmarking tool
Stars: ✭ 75 (-9.64%)
Mutual labels:  http2
Xmnetworking
A lightweight but powerful network library with simplified and expressive syntax based on AFNetworking.
Stars: ✭ 980 (+1080.72%)
Mutual labels:  http2
Httpie Http2
Experimental HTTP/2 plugin for HTTPie
Stars: ✭ 61 (-26.51%)
Mutual labels:  http2
Http2dotnet
HTTP/2 support for .NET standard
Stars: ✭ 80 (-3.61%)
Mutual labels:  http2
Okurl
OkHttp Kotlin command line
Stars: ✭ 77 (-7.23%)
Mutual labels:  http2
Esa Restlight
ESA Restlight is a lightweight and rest-oriented web framework.
Stars: ✭ 67 (-19.28%)
Mutual labels:  http2

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 HTTP::Server (broken)

  • [ ] integrate into HTTP::Server::Context (http version, server-push)

  • [x] support HTTP/2 client connections

  • [ ] integrate into HTTP::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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].