Metadata-Version: 2.4
Name: httpdex
Version: 0.1.0
Summary: A modern Python HTTP client. Drop-in replacement for httpx.
Author: Marcelo Trylesinski
License-Expression: MIT
Requires-Python: >=3.10
Requires-Dist: anyio>=4.0
Requires-Dist: certifi
Requires-Dist: httpdex-cookies>=0.1.0
Requires-Dist: httpdex-core>=0.1.0
Description-Content-Type: text/markdown

# httpdex

Drop-in replacement for `httpx` with HTTP/1.1, HTTP/2, and HTTP/3 support.

## Highlights

- `httpx`-compatible API
- Async and sync clients
- HTTP/2 via `http2=True`, HTTP/3 via `http3=True`
- Request helpers: `httpdex.get()`, `httpdex.post()`, etc.
- Cookie storage via `CookieStore`
- ASGI-native testing with `ASGITransport` and `MockTransport`

## Usage

```python
import httpdex

# Simple request
response = httpdex.get("https://example.com")

# Client with connection reuse
with httpdex.Client() as client:
    response = client.get("https://example.com")

# HTTP/2
with httpdex.Client(http2=True) as client:
    response = client.get("https://example.com")

# Async
async with httpdex.AsyncClient() as client:
    response = await client.get("https://example.com")

# Streaming
with httpdex.Client() as client:
    with client.stream("GET", "https://example.com/large") as response:
        for chunk in response.iter_bytes():
            process(chunk)
```

## Related Packages

- `httpdex-core` - connection pool and transport layer
- `httpdex-parse` - sans-I/O HTTP/1.1 parsing
- `httpdex-h2` - HTTP/2 framing and HPACK
- `httpdex-h3` - HTTP/3 over QUIC
- `httpdex-cookies` - RFC 6265 cookie parsing and storage
