web_rs

Crates.ioweb_rs
lib.rsweb_rs
version0.1.0
created_at2025-08-03 17:47:46.033811+00
updated_at2025-08-03 17:47:46.033811+00
descriptiona minimal express.js-like webserver for rust.
homepage
repositoryhttps://github.com/almightynan/web_rs
max_upload_size
id1779921
size34,803
AlmightyNan (almightynan)

documentation

README

web_rs

A minimal Express.js-like web server for Rust. Provides routing, middleware, request/response objects, error handling, static file serving, and query/body parsing.

Usage

  1. Add this crate to your project (or clone this repo).
  2. See src/main.rs for an example of how to use the API:
    • Add routes and middleware
    • Start the server

Example

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);
    }
}

Features

  • Routing (GET, POST, etc.)
  • Middleware support
  • Request/response objects
  • Error handling
  • Static file serving
  • Query/body parsing

License

MIT

Commit count: 0

cargo fmt