Hyperap

crates.io

Hyperap - Hyper wrapper. A very minimal wrapper for Hyper.rs to create a working webserver.

How To Use

~~~rs extern crate hyperap; use hyperap::hyper::server::{Response}; use hyperap::hyper::{Method}; use hyperap::server::{HyperApp, Middleware, MiddlewareParam}; use hyperap::response::{resp};

fn getstatic(a: MiddlewareResult) -> Response { hyperap::server::staticfile("Cargo.toml") } fn helloworld(a: MiddlewareResult) -> Response { resp(a.hello.clone() + " at path " + &a.path) } fn notfoundroute(a: MiddlewareResult) -> Response { resp("not found route at path ".to_owned() + &a.path) } pub struct App { pub hello: String, } pub struct MiddlewareResult { path: String, hello: String, }

[derive(Debug)]

pub struct RouteDefinition { parameters: Vec }

[derive(Debug)]

pub struct RouteDefinitionParameters { in: String, name: String, } impl Middleware for App { type M = MiddlewareResult; type R = RouteDefinition; fn middleware(&self, p: MiddlewareParam) -> Response { let m = MiddlewareResult { path: p.req.path().toowned(), hello: self.hello.clone(), }; (p.func)(m) } } fn main() { let theapp = App { hello: "Hello World".toowned(), }; let mut app = HyperApp::new(theapp); app.openbrowser(true); app.setdefaultroute(notfoundroute); app.addpureroute(Method::Get, "/static", getstatic); app.addroute(Method::Get, "/", helloworld, RouteDefinition { parameters: vec![RouteDefinitionParameters { in: "query".toowned(), name: "offset".toowned(), }] }); app.port(3000); app.run(); } ~~~

TODO