h2: A pure-Python HTTP/2 protocol stack¶
h2 is a HTTP/2 protocol stack, written entirely in Python. The goal of h2 is to be a common HTTP/2 stack for the Python ecosystem, usable in all programs regardless of concurrency model or environment.
To achieve this, h2 is entirely self-contained: it does no I/O of any kind, leaving that up to a wrapper library to control. This ensures that it can seamlessly work in all kinds of environments, from single-threaded code to Twisted.
Its goal is to be 100% compatible with RFC 7540, implementing a complete HTTP/2 protocol stack build on a set of finite state machines. Its secondary goals are to be fast, clear, and efficient.
For usage examples, see Getting Started: Writing Your Own HTTP/2 Server or consult the examples in the repository.
Contents¶
- Installation
- Getting Started: Writing Your Own HTTP/2 Server
- Negotiating HTTP/2
- Code Examples
- Advanced Usage
- Low-Level Details
- h2 API
- Testimonials
- Release Process
- Release Notes
- Release History
- 4.1.0 (2021-10-05)
- 4.0.0 (2020-09-19)
- 3.2.0 (2020-02-08)
- 3.1.1 (2019-08-02)
- 3.1.0 (2019-01-22)
- 3.0.1 (2017-04-03)
- 2.6.2 (2017-04-03)
- 2.5.4 (2017-04-03)
- 3.0.0 (2017-03-24)
- 2.6.1 (2017-03-16)
- 2.5.3 (2017-03-16)
- 2.4.4 (2017-03-16)
- 2.6.0 (2017-02-28)
- 2.5.2 (2017-01-27)
- 2.4.3 (2017-01-27)
- 2.3.4 (2017-01-27)
- 2.5.1 (2016-12-17)
- 2.5.0 (2016-10-25)
- 2.4.2 (2016-10-25)
- 2.3.3 (2016-10-25)
- 2.2.7 (2016-10-25)
- 2.4.1 (2016-08-23)
- 2.3.2 (2016-08-23)
- 2.4.0 (2016-07-01)
- 2.3.1 (2016-05-12)
- 2.2.5 (2016-05-12)
- 2.3.0 (2016-04-26)
- 2.2.4 (2016-04-25)
- 2.1.5 (2016-04-25)
- 2.2.3 (2016-04-13)
- 2.1.4 (2016-04-13)
- 2.2.2 (2016-04-05)
- 2.2.1 (2016-03-23)
- 2.2.0 (2016-03-23)
- 2.1.3 (2016-03-16)
- 2.1.2 (2016-02-17)
- 2.1.1 (2016-02-05)
- 2.1.0 (2016-02-02)
- 2.0.0 (2016-01-25)
- 1.1.1 (2015-11-17)
- 1.1.0 (2015-10-28)
- 1.0.0 (2015-10-15)