h11
A pure-Python, bring-your-own-I/O implementation of HTTP/1.1
Install
h11 on PyPI
pip
pip install h11uv
uv add h11poetry
poetry add h11Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | aging — 476 days since the last release |
| Last repo commit | |
| First released | |
| Popularity | one of the 100 most-downloaded packages on PyPI (30-day window, as of 2026-08-13) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-13) |
Evidence: h11-0.16.0-py3-none-any.whl
About h11
from the package's own PyPI description — quoted content, verbatim
h11
.. image:: https://travis-ci.org/python-hyper/h11.svg?branch=master :target: https://travis-ci.org/python-hyper/h11 :alt: Automated test status
.. image:: https://codecov.io/gh/python-hyper/h11/branch/master/graph/badge.svg :target: https://codecov.io/gh/python-hyper/h11 :alt: Test coverage
.. image:: https://readthedocs.org/projects/h11/badge/?version=latest :target: http://h11.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status
This is a little HTTP/1.1 library written from scratch in Python,
heavily inspired by hyper-h2 <https://hyper-h2.readthedocs.io/>_.
It's a "bring-your-own-I/O" library; h11 contains no IO code
whatsoever. This means you can hook h11 up to your favorite network
API, and that could be anything you want: synchronous, threaded,
asynchronous, or your own implementation of RFC 6214
<https://tools.ietf.org/html/rfc6214> -- h11 won't judge you.
(Compare this to the current state of the art, where every time a new
network API <https://trio.readthedocs.io/> comes along then someone
gets to start over reimplementing the entire HTTP protocol from
scratch.) Cory Benfield made an `excellent blog post describing...
Read as markdown · JSON record · Source repository · Homepage
AI interpretation — verify before relying
AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page
h11 is a pure-Python HTTP/1.1 protocol implementation that handles message parsing and serialization without any built-in I/O, letting you integrate it with any network stack (synchronous, asynchronous, or custom).
Installation is straightforward with no runtime dependencies. The project shows aging maintenance (476 days since last release) but remains actively developed with recent commits and a solid test suite; suitable for established use cases rather than rapid iteration.
MIT license permits unrestricted use, modification, and distribution in both open-source and proprietary projects with minimal obligations—only attribution is required.
Usage
pip install h11
import h11
conn = h11.Connection(h11.CLIENT)
req = h11.Request(method="GET", target="/", headers=[("host", "example.com")])
data = conn.send(req)
data += conn.send(h11.EndOfMessage())
Requires Python 3.8 or later; h11 provides only protocol logic, not I/O, so you must supply your own socket/network handling.
Verdict: h11 is a mature, well-tested HTTP/1.1 toolkit ideal for building custom HTTP clients and servers atop any I/O model. Zero dependencies, permissive licensing, and top-100 PyPI popularity make it a solid foundation layer, though its aging release cadence suggests it is feature-complete rather than actively evolving.
Needs verification
- Whether the 476-day gap since release reflects deliberate stability or reduced maintenance capacity
- Performance characteristics relative to other HTTP/1.1 parsers in production workloads
Similar packages
permissive · top 1,000 on PyPI
socksiopermissive · top 1,000 on PyPI
wsprotopermissive · top 1,000 on PyPI
triopermissive · top 1,000 on PyPI
hyperlinkpermissive · top 1,000 on PyPI
uritemplatepermissive · top 1,000 on PyPI
hpackpermissive · top 1,000 on PyPI
logfire-apipermissive · top 1,000 on PyPI
h2permissive · top 1,000 on PyPI
sniffiopermissive · top 100 on PyPI