nhttp3-client
Built-in HTTP/3 client for testing any nhttp3 server. Supports GET, POST, verbose output, and timing.
Basic Usage
# GET
cargo run -p nhttp3-server --bin nhttp3-client -- https://localhost:4433/
# POST with body
cargo run -p nhttp3-server --bin nhttp3-client -- \
-X POST -d '{"hello":"world"}' https://localhost:4433/echo
# Verbose (headers + timing)
cargo run -p nhttp3-server --bin nhttp3-client -- -v https://localhost:4433/health
Verbose Output
* Connecting to localhost:4433 over QUIC...
* QUIC connected in 3.6ms
* Remote: 127.0.0.1:4433
> GET /health HTTP/3
>
< HTTP/3 200 OK
< content-type: application/json
< server: nhttp3
<
{"status":"ok"}
* Connect: 3.6ms
* Response: 4.7ms
* Total: 5.1ms
* Bytes: 15
Flags
| Flag | Description | Example |
|---|---|---|
-v | Verbose — show headers, timing | -v https://... |
-X METHOD | HTTP method | -X POST |
-d BODY | Request body | -d '{"k":"v"}' |
Works with any server
The client speaks standard HTTP/3. It connects to:
- Python:
nhttp3.serve(app, port=4433) - Node.js:
serve(4433, handler) - Rust:
cargo run -p nhttp3-server - Proxy:
nhttp3-server --proxy http://localhost:8000
Why not curl?
Many curl installs don't have HTTP/3. nhttp3-client always works because it's built from the same codebase.
Agent-friendly copy
Markdown versions for agents and LLMs: