58 releases

0.8.4 Mar 23, 2024
0.8.0 Jan 12, 2024
0.7.1 Dec 21, 2023
0.5.0-rc.2 Dec 30, 2022
0.1.0-alpha Jun 28, 2020

#1892 in Asynchronous

Download history 1709/week @ 2023-12-18 790/week @ 2023-12-25 1452/week @ 2024-01-01 1191/week @ 2024-01-08 1079/week @ 2024-01-15 430/week @ 2024-01-22 346/week @ 2024-01-29 124/week @ 2024-02-05 138/week @ 2024-02-12 241/week @ 2024-02-19 127/week @ 2024-02-26 114/week @ 2024-03-04 319/week @ 2024-03-11 429/week @ 2024-03-18 124/week @ 2024-03-25 241/week @ 2024-04-01

1,145 downloads per month
Used in 3 crates

MIT license

290KB
7K SLoC

Viz

Fast, robust, flexible, lightweight web framework for Rust

Features

  • Safety #![forbid(unsafe_code)]

  • Lightweight

  • Robust Routing

  • Handy Extractors

  • Simple + Flexible Handler & Middleware

  • Supports Tower Service

Hello Viz

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.

Get started

Open Viz.rs, select language or version.

License

This project is licensed under the MIT license.

Author

Dependencies

~7–25MB
~370K SLoC