Getting Started
Install nhttp3 and run your first HTTP/3 server in under 2 minutes.
Installation
Python
pip install nhttp3
Requires Python 3.9+. The package includes the compiled Rust extension — no Rust toolchain needed.
Rust
cargo add nhttp3
Requires Rust 1.75+. Individual crates are also available:
# Just the QUIC transport
cargo add nhttp3-quic
# Just QPACK header compression
cargo add nhttp3-qpack
# Just HTTP/3 framing
cargo add nhttp3-h3
Node.js / WASM
npm install nhttp3
Or build from source:
cd nhttp3-wasm
wasm-pack build --target nodejs
npm link ./pkg
Generate TLS Certificates
HTTP/3 requires TLS. For local development, generate a self-signed certificate:
openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 \
-keyout key.pem -out cert.pem -days 365 -nodes -subj '/CN=localhost'
Tip
For production, use certificates from Let's Encrypt or your CA. Self-signed certs require -k with curl and accepting the cert in browsers.
Verify Installation
Python
import nhttp3
print(nhttp3.__version__) # 0.1.0
config = nhttp3.Config()
print(config) # Config(max_idle_timeout=30.0, ...)
Node.js
const nhttp3 = require('nhttp3');
console.log(nhttp3.version()); // 0.1.0
Next Steps
- Quick Start — Run your first HTTP/3 server
- FastAPI Guide — Migrate from uvicorn in 1 line
- Core Concepts — Understand QUIC and HTTP/3
Agent-friendly copy
Markdown: docs/guides/browser.md