7 releases (2 breaking)

new 2.1.0-unsafe Feb 18, 2025
2.0.0-unsafe Feb 8, 2025
1.0.0-unsafe Jan 26, 2025
0.3.0-unsafe Jan 15, 2025
0.1.1-unsafe Jan 10, 2025

#12 in #serve

Download history 263/week @ 2025-01-07 161/week @ 2025-01-14 93/week @ 2025-01-21 15/week @ 2025-01-28 127/week @ 2025-02-04 21/week @ 2025-02-11

264 downloads per month

MIT license

41KB
1K SLoC

Example

use ralavest::{
    extractor::Query,
    http::IntoResponse,
    route::{get, post, serve, Router},
};

#[tokio::main]
async fn main() {
    let router = Router::new()
        .route(
            "/",
            get(|| "<h1>hello world</h1>").put(|| "1230912 row affected"),
        )
        .route("/login", post(login_handler));
    let listener = tokio::net::TcpListener::bind("127.0.0.1:1945")
        .await
        .unwrap();
    serve(listener, router).await.unwrap();
}
fn login_handler(Query(mut query): Query) -> impl IntoResponse {
    let usr = query.remove("usr").unwrap_or_default();
    let pw = query.remove("pw").unwrap_or_default();
    if usr != "admin" || pw != "admin1234" {
        return "<h1>unauthorized</h1>";
    }
    return "<h1>admin panel</h1>";
}

Dependencies

~7–16MB
~190K SLoC