httptools is a Python package that provides fast HTTP parsing bindings, exposing HttpRequestParser and HttpResponseParser classes for parsing HTTP requests and responses, plus a parse_url helper. It is useful when you need efficient, callback-driven parsing of HTTP traffic and structured URL parsing in Python.
Project status
- Actively maintained, with a recent upstream push on 2026-05-25 and a current version update (v0.8.0) on the same date, indicating ongoing work.
- Update cadence appears irregular but sustained, with notable updates in 2024-10 (v0.6.x), then 2025-10 (v0.7.0/v0.7.1), and again 2026-05 (v0.8.0), roughly on the order of several months between major bumps.
AI summary generated 5 days ago
Recent updates
v0.8.0
1 week agoThis release updates httptools with bundled license files, a Cython free-threading compilation flag, and a typing pass (including pyright strict typechecking in CI). It also bumps llhttp and fixes the URL truncation problem by adding a hard maximum URL length check during URL parsing.
BreakingSecurityFeaturesv0.7.1
7 months agoRelease v0.7.1 release notes state it is identical to v0.7.0, because the earlier CI attempt failed during upload. The actual diff is limited to CI and packaging metadata, with changes in the GitHub Actions workflow and a version constant update.
v0.7.0
7 months agov0.7.0 modernizes the build and CI setup, dropping Python 3.8 support, adding Python 3.14, using Cython 3.1.0, and bumping the vendored llhttp. It also introduces static typing artifacts (Protocol and .pyi stubs) to improve type checking for the parsing APIs.
BreakingFeaturesv0.6.4
10/16/2024Release v0.6.4 primarily adjusts package distribution contents for sdist builds. The code diff shows a packaging manifest update to include Cython source files, plus the internal version string bump from 0.6.3 to 0.6.4.
v0.6.3
10/16/2024v0.6.3 primarily bumps the bundled llhttp to 9.2.1 (including a CVE fix) and adjusts some tests for missing CR line endings. In the actual code, llhttp “leniency” controls are newly exposed through a public Python API, and header value formatting expectations in tests changed, implying a potential behavior change.
SecurityFeaturesv0.6.2
10/14/2024Release v0.6.2 primarily updates the GitHub CI workflow to support building and testing on Python 3.13. The diff also includes a change to the build dependency constraints for Cython in setup.py.
Featuresv0.6.1
10/16/2023v0.6.1 primarily updates the packaging and CI configuration. It raises the minimum supported Python version to 3.8, adds Python 3.12 to build/test matrices, and changes wheel packaging to omit C sources.
BreakingFeaturesv0.6.0
7/6/2023Release v0.6.0 primarily updates the bundled llhttp dependency. The actual code diff also shows changes to CI and packaging versioning, suggesting reduced CI coverage for older Python versions.
Securityv0.5.0
9/13/2022v0.5.0 updates the bundled llhttp submodule and expands CI coverage for Python 3.11. It also updates the cibuildwheel action version used for release builds and adjusts tests to match updated parser expectations.
Securityv0.4.0
2/22/2022v0.4.0 primarily updates the bundled HTTP parsing dependencies. The only non-vendor code changes are a version bump, a small CI workflow adjustment, and an added test case.
Securityv0.3.0
8/10/2021v0.3.0 primarily reworks release packaging, switching wheel building to cibuildwheel and adjusting the supported Python wheel targets (dropping Python 3.5 wheels, adding Python 3.10 and additional Linux/macOS architectures). While the release notes claim no functional changes, the code diff shows a major change to the HTTP parsing implementation.
Breaking