extern crate hyper; extern crate hyper_router; use hyper::header::{CONTENT_LENGTH, CONTENT_TYPE}; use hyper::rt::Future; use hyper::server::Server; use hyper::{Body, Method, Request, Response}; use hyper_router::{Route, RouterBuilder, RouterService}; fn request_handler(_: Request) -> Response { let body = "Hello World"; Response::builder() .header(CONTENT_LENGTH, body.len() as u64) .header(CONTENT_TYPE, "text/plain") .body(Body::from(body)) .expect("Failed to construct the response") } fn router_service() -> Result { let router = RouterBuilder::new() .add(Route::get("/hello").using(request_handler)) .add(Route::from(Method::PATCH, "/world").using(request_handler)) .build(); Ok(RouterService::new(router)) } fn main() { let addr = "0.0.0.0:8080".parse().unwrap(); let server = Server::bind(&addr) .serve(router_service) .map_err(|e| eprintln!("server error: {}", e)); hyper::rt::run(server) }