Show HN: Rust Web Framework

Reading Time: 2 minutes

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

Quick start

To add Rwf to your stack, create a Rust binary application and add rwf and tokio to your dependencies:

cargo add rwf
cargo add tokio@1 –features full

Building an app is then as simple as:

use rwf::prelude:: * ;
use rwf::http:: Server ;

#[derive( Default ) ]
struct IndexController ;

#[async_trait]
impl Controller for IndexController {
async fn handle ( & self , request : & Request ) -> Result {
Ok ( Response :: new ( ) . html ( “Hey Rwf!” ) )
}
}

#[tokio::main]
async fn main ( ) {
Server :: new ( vec ! [
route!( “/”=> IndexController ),
] )
. launch ( “0.0.0.0:8000” )
. await
. unwrap ( ) ;
}

Examples

See examples for common use cases.

🚧 Status 🚧

Rwf is in early development and not ready for production. Many features and documentation are incomplete. 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.

Article Source




Information contained on this page is provided by an independent third-party content provider. This website makes no warranties or representations in connection therewith. If you are affiliated with this page and would like it removed please contact editor @pleasantgrove.business

Warning! This link is a trap for bad bots! Do not follow this link or you're IP adress will be banned from the site! Skip to content