Back to Explore

python-hyper/h11

GitHub
1 watchersOpen source

Last release: 4/24/2025

h11 is a pure-Python, bring-your-own-I/O HTTP/1.1 library that implements the basics of framing and header handling. It provides a connection state API for servers and clients, where you feed in network bytes to produce HTTP events and send event objects back as bytes. This is useful if you want to build HTTP functionality without using a higher-level HTTP client or server framework.

Project status

  • Actively maintained: Evidence shows active upstream work as of 2025-04-24, with two consecutive version updates (v0.16.0 and v0.15.0) on the same date, and an upstream push timestamp also on 2025-04-24.
  • Apparent update cadence: The most recent updates are close together (two updates on 2025-04-24), but there is a long earlier gap (the previous provided update before that is v0.14.0 in 2022), so cadence appears bursty rather than steady.

AI summary generated 2 weeks ago

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v0.16.0

    4/24/2025

    v0.16.0 primarily introduces a security hardening change in h11's chunked transfer decoding. The code now rejects malformed chunk termination bytes that were previously tolerated, which can prevent request-smuggling style edge cases.

    Security
  • v0.15.0

    4/24/2025

    Release v0.15.0 updates h11’s CI/test matrix and documentation to drop Python 3.7 support and test newer CPython versions. The only behaviorally significant library change is stricter validation for extremely large Content-Length values, which can alter the error path developers observe for malformed requests. Most other changes are tooling, typing, and test/documentation updates.

  • v0.14.0

    9/25/2022

    The v0.14.0 release notes were not provided, so the specific changes, potential breaking changes, and migration guidance are not documented in the release description. Developers should review the diff from the previous version (v0.13.x) and validate API and behavior changes before upgrading.

  • v0.13.0

    1/19/2022

    v0.13.0 introduces improved typing and public API clarity (notably Headers and event classes), plus protocol validation tweaks. The diff also shows a larger internal refactor toward dataclass-based immutable event objects and more explicit exports, which may introduce behavioral changes not covered by the release notes.

    BreakingFeatures
  • v0.12.0

    1/1/2021

    This release (v0.12.0) modernizes h11 for Python 3 only, dropping Python 2.7 and PyPy2 support, and extends parsing to better handle non-standard line endings. It also adds earlier detection of clearly invalid HTTP data at the beginning of the request/response, before a full line terminator is received.

    BreakingFeatures
  • v0.11.0

    10/5/2020

    v0.11.0 introduces a header-casing preservation feature, so h11 keeps the original header name casing it received and also writes header names using casing derived from how headers were provided. It also changes how multiple Content-Length headers are handled, merging equal values and raising an error when they conflict.

    BreakingFeatures
  • v0.10.0

    8/13/2020

    This v0.10.0 release primarily updates supported Python versions (dropping Python 3.4, adding 3.8) and refreshes CI, docs, and tooling configuration. The only substantive library-side code change in the diff improves validation error messages by passing extra context into internal header/request/status parsing validation. Release notes were not provided by the publisher.

    Breaking
  • v0.9.0

    4/22/2019

    This release (v0.9.0) introduces stricter request-target validation and relaxes accepted header-value character rules in the HTTP/1.1 parsing logic. CI and project metadata were also updated, including dropping Python 3.3 support and raising the minimum supported Python 3 version in documentation.

  • v0.8.1

    4/15/2018

    v0.8.1 primarily addresses a header typing bug, ensuring parsed HTTP headers are always returned as bytes objects. The release also includes documentation and tooling updates, including adding proper license notices in bundled documentation JavaScript and updating repository metadata to the python-hyper org.

  • v0.8.0

    3/20/2018

    Release v0.8.0 is published, but no release notes were provided. As a result, this analysis cannot confirm new features, bug fixes, breaking changes, or security updates from the published documentation.