2 releases
new 0.1.1 | May 11, 2024 |
---|---|
0.1.0 | Apr 26, 2024 |
#1621 in Web programming
127 downloads per month
96KB
2.5K
SLoC
Racoon
Racoon is fast, fully customizable lightweight web framework for rust developers. Learn Racoon
Installation
You will need tokio
runtime to run Racoon. Run cargo add tokio
to install tokio crate.
[dependencies]
racoon = "0.1.1"
Example
use racoon::core::path::Path;
use racoon::core::request::Request;
use racoon::core::response::{HttpResponse, Response};
use racoon::core::response::status::ResponseStatus;
use racoon::core::server::Server;
use racoon::view;
async fn home(request: Request) -> Response {
HttpResponse::ok().body("Home")
}
#[tokio::main]
async fn main() {
let paths = vec![
Path::new("/", view!(home))
];
let result = Server::bind("127.0.0.1:8080")
.urls(paths)
.run().await;
println!("Failed to run server: {:?}", result);
}
Benchmark
wrk -c8 -d4s -t4 http://127.0.0.1:8080
Result on AMD Ryzen 5 7520U with Radeon Graphics.
Running 4s test @ http://127.0.0.1:8080
4 threads and 8 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 50.62us 60.12us 2.52ms 97.98%
Req/Sec 40.59k 4.10k 44.20k 92.68%
662179 requests in 4.10s, 46.73MB read
Requests/sec: 161510.26
Transfer/sec: 11.40MB
This benchmark does not make sense in real world.
Dependencies
~7–19MB
~260K SLoC