1 unstable release

0.1.4 Dec 26, 2020

#30 in #web-worker

MIT license

8KB
120 lines

Waserv - work in progress

crates.io Released API docs GHA Build Status

Waserv is a simple web server for a wasm

Request -> CF Worker -> Waserv -> Response

## Example

use web_sys::{Request, Response, Headers};
use waserv::{response::response, router::Router, Params, Waserv};

fn index(_request: Request, _params: Params) -> Response {
    let body = "Hello, World!".to_string();
    let headers = Headers::new().unwrap();
    headers
        .set("Content-Type", "text/html; charset=UTF-8")
        .unwrap();
    headers.set("Cache-Control", "no-cache").unwrap();
    response(body, headers, Some(200))
}

fn handle(request: Request) -> Response {
    let mut router = Router::new();
    router.get("/", Box::new(index));
    let mut ww = Waserv::new();
    ww.mount(router);
    ww.handle(request)
}

Test

wasm-pack test --chrome

Dependencies

~7.5–10MB
~182K SLoC