rukit

Crates.iorukit
lib.rsrukit
version0.0.1
created_at2025-07-28 03:32:37.19232+00
updated_at2025-07-28 03:32:37.19232+00
descriptionRukit: A blazing-fast, async-first HTTP framework built with Rust and powered by Tokio.
homepagehttps://github.com/rustkit/rukit
repositoryhttps://github.com/rustkit/rukit
max_upload_size
id1770627
size7,131
Billgo (billgo)

documentation

https://docs.rs/rukit

README

Rukit

Rukit is a blazing-fast, async-first HTTP framework built with Rust, powered by Tokio, and designed for building secure, scalable, enterprise-grade web services.


✨ Key Features

  • 🔧 Built on tokio for maximum concurrency
  • 🧩 Modular middleware architecture
  • ✅ Type-safe routing, request and response handling
  • 🚀 High throughput, predictable latency
  • 🔐 Security-first design (e.g. CORS, CSRF, TLS-ready)
  • 📦 Optimized for microservices, APIs, and internal platforms

🧩 Modular Architecture

Roust is designed as a modular, extensible framework. Each core component is separated into its own module, making it easy to customize, replace, or extend functionality.

Core Modules

Module Description
router Type-safe, composable routing with support for nesting and guards
server Async server with graceful shutdown, TLS, and listener configuration
handler Lifecycle handlers, extractors, and request parsing
middleware Composable middleware: logging, auth, CORS, etc.
response Response builders and utilities: JSON, HTML, status codes
error Unified error handling and custom error types
ext Shared state and request extensions (AppContext, RequestExt)

Planned Add-ons

Add-on Crate Description
roust-openapi Auto-generated OpenAPI docs with Swagger UI support
roust-auth Built-in JWT/session-based authentication
roust-metrics Prometheus and OpenTelemetry instrumentation
roust-static Static file serving with ETag and cache control

🚀 Getting Started

cargo add rukit

Then:

use rukit::{router, serve};

#[tokio::main]
async fn main() {
    let app = router().get("/", || async { "Hello from Rukit!" });
    serve(app).await.unwrap();
}

📄 License

This project is dual-licensed under either:

  • MIT License
  • Apache License 2.0
Commit count: 0

cargo fmt