# System map — encode/httpx

> Canonical page: https://codevetter.com/unpack/httpx/system-map

# System map — encode/httpx

Scanned commit b5addb64f0161ff6bfe94c124ef76f6a1fba5254 (2026-02-23). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

The package separates public APIs, client policy, HTTP models, and transport execution. Client configuration and cookies live in Python objects, while network connection pools belong to httpcore. Packaging produces a Python distribution and a MkDocs documentation site. The inspected workflows define verification and publication, but their outcomes were not observed.
- The distribution requires Python >=3.9, uses Hatchling, and declares certifi, httpcore==1.*, anyio, and idna as runtime dependencies. — [pyproject.toml#L1-L9](https://github.com/encode/httpx/blob/b5addb64f0161ff6bfe94c124ef76f6a1fba5254/pyproject.toml#L1-L9) [pyproject.toml#L30-L35](https://github.com/encode/httpx/blob/b5addb64f0161ff6bfe94c124ef76f6a1fba5254/pyproject.toml#L30-L35)
- httpx/__init__.py assembles the public API from internal modules; the console entrypoint is httpx:main, with an import fallback that explains how to install missing CLI extras and exits 1. — [httpx/__init__.py#L1-L26](https://github.com/encode/httpx/blob/b5addb64f0161ff6bfe94c124ef76f6a1fba5254/httpx/__init__.py#L1-L26) [pyproject.toml#L58-L59](https://github.com/encode/httpx/blob/b5addb64f0161ff6bfe94c124ef76f6a1fba5254/pyproject.toml#L58-L59)
- _api.request() creates a context-managed Client for one call; BaseClient holds shared configuration, while Client and AsyncClient implement separate dispatch pipelines. — [httpx/_api.py#L102-L120](https://github.com/encode/httpx/blob/b5addb64f0161ff6bfe94c124ef76f6a1fba5254/httpx/_api.py#L102-L120) [httpx/_client.py#L204-L221](https://github.com/encode/httpx/blob/b5addb64f0161ff6bfe94c124ef76f6a1fba5254/httpx/_client.py#L204-L221) [httpx/_client.py#L879-L928](https://github.com/encode/httpx/blob/b5addb64f0161ff6bfe94c124ef76f6a1fba5254/httpx/_client.py#L879-L928) [httpx/_client.py#L1594-L1643](https://github.com/encode/httpx/blob/b5addb64f0161ff6bfe94c124ef76f6a1fba5254/httpx/_client.py#L1594-L1643)
- Request, Response, Headers, and Cookies are HTTP model objects; URL delegates parsing to the repository's RFC3986-oriented normalization implementation rather than relying exclusively on stdlib parsing. — [httpx/_models.py#L139-L162](https://github.com/encode/httpx/blob/b5addb64f0161ff6bfe94c124ef76f6a1fba5254/httpx/_models.py#L139-L162) [httpx/_models.py#L382-L423](https://github.com/encode/httpx/blob/b5addb64f0161ff6bfe94c124ef76f6a1fba5254/httpx/_models.py#L382-L423) [httpx/_urls.py#L115-L124](https://github.com/encode/httpx/blob/b5addb64f0161ff6bfe94c124ef76f6a1fba5254/httpx/_urls.py#L115-L124) [httpx/_urlparse.py#L1-L16](https://github.com/encode/httpx/blob/b5addb64f0161ff6bfe94c124ef76f6a1fba5254/httpx/_urlparse.py#L1-L16)
- HTTPTransport and AsyncHTTPTransport select httpcore connection pools or HTTP/SOCKS proxy pools and translate HTTPX requests and responses across that dependency boundary. — [httpx/_transports/default.py#L150-L210](https://github.com/encode/httpx/blob/b5addb64f0161ff6bfe94c124ef76f6a1fba5254/httpx/_transports/default.py#L150-L210) [httpx/_transports/default.py#L230-L259](https://github.com/encode/httpx/blob/b5addb64f0161ff6bfe94c124ef76f6a1fba5254/httpx/_transports/default.py#L230-L259) [httpx/_transports/default.py#L374-L403](https://github.com/encode/httpx/blob/b5addb64f0161ff6bfe94c124ef76f6a1fba5254/httpx/_transports/default.py#L374-L403)
- Alternate runtime boundaries include synchronous WSGI calls, asynchronous ASGI calls, and callable-backed MockTransport dispatch; each returns the same Response model. — [httpx/_transports/wsgi.py#L91-L149](https://github.com/encode/httpx/blob/b5addb64f0161ff6bfe94c124ef76f6a1fba5254/httpx/_transports/wsgi.py#L91-L149) [httpx/_transports/asgi.py#L99-L119](https://github.com/encode/httpx/blob/b5addb64f0161ff6bfe94c124ef76f6a1fba5254/httpx/_transports/asgi.py#L99-L119) [httpx/_transports/asgi.py#L169-L187](https://github.com/encode/httpx/blob/b5addb64f0161ff6bfe94c124ef76f6a1fba5254/httpx/_transports/asgi.py#L169-L187) [httpx/_transports/mock.py#L15-L43](https://github.com/encode/httpx/blob/b5addb64f0161ff6bfe94c124ef76f6a1fba5254/httpx/_transports/mock.py#L15-L43)
- Session state is client-owned: BaseClient initializes Cookies, received responses update that jar, and Cookies wraps stdlib CookieJar. CLI downloads provide an explicit filesystem output boundary. — [httpx/_client.py#L206-L221](https://github.com/encode/httpx/blob/b5addb64f0161ff6bfe94c124ef76f6a1fba5254/httpx/_client.py#L206-L221) [httpx/_client.py#L1016-L1024](https://github.com/encode/httpx/blob/b5addb64f0161ff6bfe94c124ef76f6a1fba5254/httpx/_client.py#L1016-L1024) [httpx/_models.py#L1084-L1115](https://github.com/encode/httpx/blob/b5addb64f0161ff6bfe94c124ef76f6a1fba5254/httpx/_models.py#L1084-L1115) [httpx/_main.py#L251-L270](https://github.com/encode/httpx/blob/b5addb64f0161ff6bfe94c124ef76f6a1fba5254/httpx/_main.py#L251-L270)
- CI invokes install, check, build, test, and coverage scripts on Ubuntu/Python 3.9–3.13; tag publication builds distributions and docs, then uploads to PyPI and deploys MkDocs after checking tag/version agreement. — [.github/workflows/test-suite.yml#L10-L34](https://github.com/encode/httpx/blob/b5addb64f0161ff6bfe94c124ef76f6a1fba5254/.github/workflows/test-suite.yml#L10-L34) [.github/workflows/publish.yml#L3-L26](https://github.com/encode/httpx/blob/b5addb64f0161ff6bfe94c124ef76f6a1fba5254/.github/workflows/publish.yml#L3-L26) [scripts/build#L11-L13](https://github.com/encode/httpx/blob/b5addb64f0161ff6bfe94c124ef76f6a1fba5254/scripts/build#L11-L13) [scripts/publish#L15-L26](https://github.com/encode/httpx/blob/b5addb64f0161ff6bfe94c124ef76f6a1fba5254/scripts/publish#L15-L26)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
