Skip to content

**QuikServe** is a high-performance HTTP/3 web server built with Rust, leveraging Tokio, Quinn, and Hyper for fast, secure, and scalable web serving. Ideal for developers looking to integrate HTTP/3 support into their projects or run a standalone QUIC-based server.

Notifications You must be signed in to change notification settings

aashishbishow/QuikServe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QuikServe 🚀

A high-performance, lightweight HTTP/3 server built with Rust, powered by Tokio, Quinn, and Hyper.

License
Rust
Crates.io
Docs


✨ Features

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.


📦 Installation

You can install quikserve as a binary or use it as a library in your Rust projects.

1️⃣ Install CLI (Binary)

cargo install quikserve

This will install the quikserve binary, allowing you to run a standalone HTTP/3 server.

2️⃣ Add as a Library

If you want to embed QuikServe into your Rust project, add it to Cargo.toml:

[dependencies]
quikserve = "0.1"

🚀 Quick Start

1️⃣ Generate TLS Certificates

Since QUIC requires TLS, generate a self-signed certificate:

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes

2️⃣ Start the Server

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).


📜 Usage

CLI Options

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)

Using as a Library

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");
}

🛠 Configuration

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

⚡ Performance

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


🔒 Security

  • TLS 1.3 enforced by rustls
  • Automatic key rotation (configurable)
  • Rate limiting & request filtering (planned)

📖 Roadmap

  • Middleware support
  • WebSocket over HTTP/3
  • Load balancing & clustering
  • QUIC connection migration

🛠 Contributing

We welcome contributions! To get started:

  1. Fork the repo & clone locally.
  2. Run cargo fmt and cargo clippy before PRs.
  3. Open an issue for feature requests or bugs.

📜 License

QuikServe is licensed under the MIT License. See LICENSE for details.


📞 Contact


About

**QuikServe** is a high-performance HTTP/3 web server built with Rust, leveraging Tokio, Quinn, and Hyper for fast, secure, and scalable web serving. Ideal for developers looking to integrate HTTP/3 support into their projects or run a standalone QUIC-based server.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages