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 ?
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:
Implementation
Backend
quic_port: HTTP/3 listen port (default: 8080 plain, 8443 TLS)enable_quic: Enable HTTP/3 serverFrontend
Benefits
Questions