Baiyuetribe / viz

Fast, flexible, lightweight web framework for Rust

Home Page:https://viz.rs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Viz

Fast, robust, flexible, lightweight web framework for Rust

Note: viz's main branch is currently preparing breaking changes. For the most recently released code, look to the 0.4.x branch.

Features

  • Safety #![forbid(unsafe_code)]

  • Lightweight

  • Robust Routing

  • Handy Extractors

  • Simple + Flexible Handler & Middleware

Hello Viz

use std::{net::SocketAddr, sync::Arc};
use tokio::net::TcpListener;
use viz::{serve, Request, Result, Router, Tree};

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);
    let tree = Arc::new(Tree::from(app));

    loop {
        let (stream, addr) = listener.accept().await?;
        let tree = tree.clone();
        tokio::task::spawn(serve(stream, tree, Some(addr)));
    }
}

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

About

Fast, flexible, lightweight web framework for Rust

https://viz.rs

License:MIT License


Languages

Language:Rust 98.3%Language:Smarty 1.7%