librespeed / librespeed/speedtest-rust
[Feature] Add HTTP/3 (QUIC) Support
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 249
- Forks
- 37
- PR merge metrics
- No merged PRs in 30d
Description
Summary
Add HTTP/3 support using QUIC protocol to enable faster speed tests on modern connections.
Description
Currently, librespeed-rust only supports HTTP/1 (with optional TLS). This issue proposes adding HTTP/3 (QUIC) support for:
- Faster connection establishment - No TCP handshake, 0-RTT resumption
- Better latency - UDP-based, no head-of-line blocking
- Future-proofing - HTTP/3 is the next standard
Implementation
Backend
- Add noq crate for QUIC server (based on Quinn + rustls)
- Run HTTP/1 and HTTP/3 servers concurrently on different ports
- Add config options:
quic_port: HTTP/3 listen port (default: 8080 plain, 8443 TLS)enable_quic: Enable HTTP/3 server
- Reuse existing route handlers for both servers
Frontend
- Modified servers list to dynamically generate both HTTP/1 and HTTP/3 server entries
- Modified index.html to allow protocol selection via dropdown
- Modified JS.
- Both servers share same endpoints (/empty, /garbage, /getIP, etc.)
Benefits
- Users can test both HTTP/1 and HTTP/3 performance
- Same server handles both protocols
- No special client needed
Questions
- Is this feature of interest?
- Should the servers run concurrently on different ports, or should we have a single server/port ?
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the existing HTTP/1 server, configuration, route handlers, servers list, index.html, and frontend JS. Resolve whether HTTP/3 should use separate ports and how protocol selection works; done means concurrent HTTP/1 and HTTP/3 support with shared endpoints and configuration for enabling QUIC.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend, frontend, networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100