| Crates.io | web_rs |
| lib.rs | web_rs |
| version | 0.1.0 |
| created_at | 2025-08-03 17:47:46.033811+00 |
| updated_at | 2025-08-03 17:47:46.033811+00 |
| description | a minimal express.js-like webserver for rust. |
| homepage | |
| repository | https://github.com/almightynan/web_rs |
| max_upload_size | |
| id | 1779921 |
| size | 34,803 |
A minimal Express.js-like web server for Rust. Provides routing, middleware, request/response objects, error handling, static file serving, and query/body parsing.
src/main.rs for an example of how to use the API:
use web_rs::{Router, Middleware, serve_static_file, parse_query, parse_json};
use hyper::{Body, Request, Response, Method, StatusCode, Server};
use std::sync::Arc;
use tokio::sync::Mutex;
use hyper::service::{make_service_fn, service_fn};
#[tokio::main]
async fn main() {
let router = Arc::new(Router::new().await);
// Add routes and middleware as shown in main.rs
// ...
let make_svc = make_service_fn(move |_| {
let router = router.clone();
async move {
Ok::<_, std::convert::Infallible>(service_fn(move |req| {
let router = router.clone();
async move { router.handle(req).await }
}))
}
});
let addr = ([127, 0, 0, 1], 3000).into();
let server = Server::bind(&addr).serve(make_svc);
println!("Listening on http://{}", addr);
if let Err(e) = server.await {
eprintln!("server error: {}", e);
}
}
MIT