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

Agent-friendly copy

Markdown: docs/guides/curl.md