volga

Crates.iovolga
lib.rsvolga
version
sourcesrc
created_at2024-10-03 17:08:04.914343
updated_at2024-12-11 12:49:54.355831
descriptionEasy & Fast Web Framework for Rust
homepagehttps://romanemreis.github.io/volga-docs
repositoryhttps://github.com/RomanEmreis/volga
max_upload_size
id1395421
Cargo.toml error:TOML parse error at line 19, column 1 | 19 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include`
size0
Roman (RomanEmreis)

documentation

https://docs.rs/volga

README

Volga

Fast, Easy, and very flexible Web Framework for Rust based on Tokio runtime and hyper for fun and painless microservices crafting.

latest latest License: MIT Build Release

Tutorial | API Docs | Examples

Features

  • Supports HTTP/1 and HTTP/2
  • Robust routing
  • Custom middlewares
  • Full Tokio compatibility
  • Runs on stable Rust 1.80+

Getting Started

Dependencies

[dependencies]
volga = "0.4.2"
tokio = { version = "1", features = ["full"] }

Simple request handler

use volga::*;

#[tokio::main]
async fn main() -> std::io::Result<()> {
    // Start the server
    let mut app = App::new();

    // Example of request handler
    app.map_get("/hello/{name}", |name: String| async move {
        ok!("Hello {name}!")
    });
    
    app.run().await
}

Performance

Tested a single instance on a laptop using 1 thread and 200 connections and under configuration:

OS: Arch Linux
CPU: Intel i7-8665U (8) @ 4.800GHz
RAM: 31686MiB

Results

Running 10s test @ http://127.0.0.1:7878/hello
  1 threads and 200 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   578.90us  206.77us   5.77ms   79.81%
    Req/Sec   184.72k     9.54k  200.74k    77.00%
  1837693 requests in 10.08s, 206.80MB read
Requests/sec: 182380.80
Transfer/sec:     20.52MB
Commit count: 93

cargo fmt