A high-performance, lightweight HTTP/3 server built with Rust, powered by Tokio, Quinn, and Hyper.
✅ Fully Async – Uses tokio
for non-blocking performance.
✅ HTTP/3 Support – Uses quinn
for QUIC-based communication.
✅ TLS by Default – Secure communication with TLS (via rustls
).
✅ Extensible – Can be used as a standalone server or a library in Rust projects.
✅ Minimal and Fast – Designed for speed and efficiency with low resource usage.
You can install quikserve
as a binary or use it as a library in your Rust projects.
cargo install quikserve
This will install the quikserve
binary, allowing you to run a standalone HTTP/3 server.
If you want to embed QuikServe into your Rust project, add it to Cargo.toml
:
[dependencies]
quikserve = "0.1"
Since QUIC requires TLS, generate a self-signed certificate:
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes
Run the HTTP/3 server on port 4433
:
quikserve --port 4433 --cert cert.pem --key key.pem
Now, visit https://localhost:4433 in a QUIC-enabled browser (like Chrome or Firefox).
quikserve --help
Flag | Description |
---|---|
--port <PORT> |
Specify the server port (default: 4433) |
--cert <FILE> |
Path to the TLS certificate file |
--key <FILE> |
Path to the TLS private key file |
--log-level <LEVEL> |
Set log verbosity (info , debug , trace ) |
Create a simple HTTP/3 server in Rust:
use quikserve::Server;
#[tokio::main]
async fn main() {
let server = Server::new("localhost:4433", "cert.pem", "key.pem")
.expect("Failed to initialize server");
server.run().await.expect("Server crashed");
}
QuikServe supports custom TLS settings, request routing, and logging via a configuration file (config.toml
):
[server]
port = 4433
tls_cert = "cert.pem"
tls_key = "key.pem"
[logging]
level = "info"
Run the server with:
quikserve --config config.toml
QuikServe is optimized for speed and low latency:
✅ Non-blocking I/O via tokio
✅ Multiplexing via quinn
✅ Zero-copy data transfer
✅ Lightweight HTTP handler with hyper
- TLS 1.3 enforced by
rustls
- Automatic key rotation (configurable)
- Rate limiting & request filtering (planned)
- Middleware support
- WebSocket over HTTP/3
- Load balancing & clustering
- QUIC connection migration
We welcome contributions! To get started:
- Fork the repo & clone locally.
- Run
cargo fmt
andcargo clippy
before PRs. - Open an issue for feature requests or bugs.
QuikServe is licensed under the MIT License. See LICENSE for details.
- GitHub Issues: Report Bugs
- Discussions: Join Community