16 releases
0.2.1 | Dec 5, 2024 |
---|---|
0.2.0 | Dec 1, 2024 |
0.1.15 | Nov 29, 2024 |
0.1.3 | Oct 22, 2024 |
#184 in WebSocket
35 downloads per month
Used in 2 crates
595KB
13K
SLoC
Rwf ‐ Rust Web Framework
Rwf is a comprehensive framework for building web applications in Rust. Written using the classic MVC pattern (model-view-controller), Rwf comes standard with everything you need to easily build fast and secure web apps.
Documentation
📘 The documentation is available here.
Features overview
- ✔ HTTP server
- ✔ User-friendly ORM to build PostgreSQL queries easily
- ✔ Dynamic templates
- ✔ Authentication & built-in user sessions
- ✔ Middleware
- ✔ Background jobs and scheduled jobs
- ✔ Database migrations
- ✔ Built-in REST framework with JSON serialization
- ✔ WebSockets support
- ✔ Static files hosting
- ✔ Tight integration with Hotwired Turbo for building backend-driven SPAs
- ✔ Environment-specific configuration
- ✔ Logging and metrics
- ✔ CLI
- ✔ WSGI server for migrating from Django/Flask apps
- ✔ Rack server for migrating from Rails
Quick start
To add Rwf to your stack, create a Rust binary application and add rwf
to your dependencies:
cargo add rwf
Building an app is then as simple as:
use rwf::prelude::*;
use rwf::http::Server;
#[controller]
async fn index() -> Response {
Response::new().html("<h1>Welcome to Rwf!</h1>")
}
#[tokio::main]
async fn main() {
Server::new(vec![
route!("/" => index),
])
.launch()
.await
.unwrap();
}
Examples
See examples for common use cases.
🚦 Status 🚦
Rwf is in beta and looking for early adopters. Most features are in a good state and documentation is usable.
🔧 Contributions
Contributions are welcome. Please see CONTRIBUTING for guidelines, ARCHITECTURE for a tour of the code, and ROADMAP for a non-exhaustive list of desired features.
Dependencies
~16–29MB
~447K SLoC