httptap solves one narrowly-scoped problem every backend developer eventually hits: "my API is slow — where is the time going?" It dissects a single HTTP request into DNS resolution, TCP connect, TLS handshake, server wait (TTFB), and body transfer phases, and renders the timings as a Rich waterfall, a compact single-line summary, or machine-readabl key=value metrics — whichever fits the context.
Signals of real-world maturity despite a modest star count (485 ⭐ in 6 months):
PyPI releases (https://pypi.org/project/httptap/) with automated SLSA v1.0 build provenance and Sigstore keyless signing — verifiable via gh attestation verify.
OpenSSF Best Practices silver (project 12474) and OpenSSF Scorecard ~9/10: pinned dependencies, strict token permissions, CodeQL SAST, signed releases.
Full docs site at https://docs.httptap.dev — getting-started, API reference, troubleshooting, assurance case.
Clean Python API (httptap.HTTPTapAnalyzer) with Protocol interfaces for DNS, TLS, timing, visualizer, and exporter — usable programmatically, not CLI-only.
Production-oriented output modes: --json for post-hoc analysis, --metrics-only for log pipelines, per-step timings for redirect chains.
curl-compatible flag aliases (-X, -L, -k, -x, -H) so it drops into existing shell scripts.
Repository is ~6 months old (created 2025-10-22) with consistent weekly commits and 30+ commits in the last 90 days.
How It Differs
Existing entries in HTTP Clients (aiohttp, httpx, requests, urllib3, furl) are general-purpose libraries for issuing requests — none break a request down into per-phase timings. Existing entries in Debugging Tools (py-spy, scalene, pudb, etc.) profile CPU, memory, or control flow of Python code — none profile the network phases of an HTTP exchange.
httptap fills the gap between these two categories: it is a diagnostic / debugging tool specifically for HTTP request latency (DNS → TCP → TLS → TTFB → transfer), which is a recurring source of production
incidents that general HTTP clients cannot diagnose and general profilers cannot see. Closest conceptual sibling outside Python is httpstat (a curl wrapper) or curl -w, both non-Python and without a library
API.
This is why it is proposed under Debugging Tools → Network (new subcategory) rather than HTTP Clients.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/vinta/awesome-python/pull/3056
**Author:** [@ozeranskii](https://github.com/ozeranskii)
**Created:** 4/12/2026
**Status:** ✅ Merged
**Merged:** 4/13/2026
**Merged by:** [@JinyangWang27](https://github.com/JinyangWang27)
**Base:** `master` ← **Head:** `patch-1`
---
### 📝 Commits (2)
- [`f4201b8`](https://github.com/vinta/awesome-python/commit/f4201b85db50bbeab1d49b1e60351b598b4f99ff) Add httptap to Debugging Tools
- [`985400c`](https://github.com/vinta/awesome-python/commit/985400cac34d86240ae3d747af568bff9e5ded82) Update README.md
### 📊 Changes
**1 file changed** (+1 additions, -0 deletions)
<details>
<summary>View changed files</summary>
📝 `README.md` (+1 -0)
</details>
### 📄 Description
## Project
[httptap](https://github.com/ozeranskii/httptap)
## Checklist
- [x] One project per PR
- [x] PR title format: `Add project-name`
- [x] Entry format: `- [project-name](url) - Description ending with period.`
- [x] Description is concise and short
## Why This Project Is Awesome
Which criterion does it meet? (pick one)
- [ ] **Industry Standard** - The go-to tool for a specific use case
- [ ] **Rising Star** - 5000+ stars in < 2 years, significant adoption
- [x] **Hidden Gem** - Exceptional quality, solves niche problems elegantly
Explain:
httptap solves one narrowly-scoped problem every backend developer eventually hits: *"my API is slow — where is the time going?"* It dissects a single HTTP request into DNS resolution, TCP connect, TLS handshake, server wait (TTFB), and body transfer phases, and renders the timings as a Rich waterfall, a compact single-line summary, or machine-readabl `key=value` metrics — whichever fits the context.
Signals of real-world maturity despite a modest star count (485 ⭐ in 6 months):
- **PyPI releases** (https://pypi.org/project/httptap/) with automated **SLSA v1.0 build provenance** and **Sigstore keyless signing** — verifiable via `gh attestation verify`.
- **OpenSSF Best Practices silver** (project 12474) and **OpenSSF Scorecard ~9/10**: pinned dependencies, strict token permissions, CodeQL SAST, signed releases.
- Full docs site at https://docs.httptap.dev — getting-started, API reference, troubleshooting, assurance case.
- Clean Python API (`httptap.HTTPTapAnalyzer`) with Protocol interfaces for DNS, TLS, timing, visualizer, and exporter — usable programmatically, not CLI-only.
- Production-oriented output modes: `--json` for post-hoc analysis, `--metrics-only` for log pipelines, per-step timings for redirect chains.
- curl-compatible flag aliases (`-X`, `-L`, `-k`, `-x`, `-H`) so it drops into existing shell scripts.
Repository is ~6 months old (created 2025-10-22) with consistent weekly commits and 30+ commits in the last 90 days.
## How It Differs
Existing entries in *HTTP Clients* (`aiohttp`, `httpx`, `requests`, `urllib3`, `furl`) are general-purpose libraries for issuing requests — none break a request down into per-phase timings. Existing entries in
*Debugging Tools* (`py-spy`, `scalene`, `pudb`, etc.) profile CPU, memory, or control flow of Python code — none profile the network phases of an HTTP exchange.
httptap fills the gap between these two categories: it is a diagnostic / debugging tool specifically for HTTP request latency (DNS → TCP → TLS → TTFB → transfer), which is a recurring source of production
incidents that general HTTP clients cannot diagnose and general profilers cannot see. Closest conceptual sibling outside Python is `httpstat` (a curl wrapper) or `curl -w`, both non-Python and without a library
API.
This is why it is proposed under **Debugging Tools → Network** (new subcategory) rather than HTTP Clients.
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/vinta/awesome-python/pull/3056
Author: @ozeranskii
Created: 4/12/2026
Status: ✅ Merged
Merged: 4/13/2026
Merged by: @JinyangWang27
Base:
master← Head:patch-1📝 Commits (2)
f4201b8Add httptap to Debugging Tools985400cUpdate README.md📊 Changes
1 file changed (+1 additions, -0 deletions)
View changed files
📝
README.md(+1 -0)📄 Description
Project
httptap
Checklist
Add project-name- [project-name](url) - Description ending with period.Why This Project Is Awesome
Which criterion does it meet? (pick one)
Explain:
httptap solves one narrowly-scoped problem every backend developer eventually hits: "my API is slow — where is the time going?" It dissects a single HTTP request into DNS resolution, TCP connect, TLS handshake, server wait (TTFB), and body transfer phases, and renders the timings as a Rich waterfall, a compact single-line summary, or machine-readabl
key=valuemetrics — whichever fits the context.Signals of real-world maturity despite a modest star count (485 ⭐ in 6 months):
gh attestation verify.httptap.HTTPTapAnalyzer) with Protocol interfaces for DNS, TLS, timing, visualizer, and exporter — usable programmatically, not CLI-only.--jsonfor post-hoc analysis,--metrics-onlyfor log pipelines, per-step timings for redirect chains.-X,-L,-k,-x,-H) so it drops into existing shell scripts.Repository is ~6 months old (created 2025-10-22) with consistent weekly commits and 30+ commits in the last 90 days.
How It Differs
Existing entries in HTTP Clients (
aiohttp,httpx,requests,urllib3,furl) are general-purpose libraries for issuing requests — none break a request down into per-phase timings. Existing entries inDebugging Tools (
py-spy,scalene,pudb, etc.) profile CPU, memory, or control flow of Python code — none profile the network phases of an HTTP exchange.httptap fills the gap between these two categories: it is a diagnostic / debugging tool specifically for HTTP request latency (DNS → TCP → TLS → TTFB → transfer), which is a recurring source of production
incidents that general HTTP clients cannot diagnose and general profilers cannot see. Closest conceptual sibling outside Python is
httpstat(a curl wrapper) orcurl -w, both non-Python and without a libraryAPI.
This is why it is proposed under Debugging Tools → Network (new subcategory) rather than HTTP Clients.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.