Fast, robust, flexible, lightweight web framework for Rust
-
Safety
#![forbid(unsafe_code)]
-
Lightweight
-
Robust
Routing
-
Handy
Extractors
-
Simple + Flexible
Handler
&Middleware
-
Supports Tower
Service
use std::net::SocketAddr;
use tokio::net::TcpListener;
use viz::{serve, Request, Result, Router};
async fn index(_: Request) -> Result<&'static str> {
Ok("Hello, Viz!")
}
#[tokio::main]
async fn main() -> Result<()> {
let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
let listener = TcpListener::bind(addr).await?;
println!("listening on http://{addr}");
let app = Router::new().get("/", index);
if let Err(e) = serve(listener, app).await {
println!("{e}");
}
Ok(())
}
More examples can be found here.
Open Viz.rs, select language or version.
This project is licensed under the MIT license.