π Vision
RustAPI brings the developer experience (DX) of modern frameworks like FastAPI to the Rust ecosystem.
We believe that writing high-performance, type-safe web APIs in Rust shouldn't require fighting with complex trait bounds or massive boilerplate. RustAPI provides a polished, battery-included experience where:
- API Design is First-Class: Define your schema, and let the framework handle Validation and OpenAPI documentation automatically.
- The Engine is Abstracted: We rely on industry standards like
tokio,hyper, andmatchitinternally, but we expose a stable, user-centric API. - Zero Boilerplate: Extractors and macros do the heavy lifting.
β¨ Features
- β‘ Fast & Async: Built on top of
tokioandhyper1.0. - π‘οΈ Type-Safe: Request/Response bodies are strictly typed using generic extractors (
Json,Query,Path). - π Auto-Docs: Generates OpenAPI 3.0 specifications and serves Swagger UI automatically.
- β
Validation: Declarative validation using
#[derive(Validate)]. - π Batteries Included:
- Authentication: JWT support.
- Database: SQLx integration.
- WebSockets: Real-time communication.
- Templating: Tera view engine.
- Jobs: Background task processing (Redis/Postgres).
π¦ Quick Start
Add rustapi-rs to your Cargo.toml.
[]
= { = "0.1", = ["full"] }
The "Hello World"
use *;
/// Define your response schema
/// Define an endpoint
async
/// Run the server
async
Visit http://127.0.0.1:8080/docs to see your interactive API documentation!
πΊοΈ Architecture
RustAPI follows a Facade Architecture:
rustapi-rs: The public-facing entry point. Always import from here.rustapi-core: The internal engine (Hyper/Tower).rustapi-macros: Procedural macros (#[get],#[main]).cargo-rustapi: The CLI tool for scaffolding projects.
π€ Contributing
We welcome contributions! Please see CONTRIBUTING.md for details.
π License
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.