6 releases
Uses old Rust 2015
0.1.5 | Mar 8, 2018 |
---|---|
0.1.4 | Mar 7, 2018 |
50KB
1K
SLoC
Rusty Pipe
Routing handler for the Iron web framework.
Rusty Pipe is a fast, convenient, and flexible routing middleware for Iron. It allows complex glob patterns and named url parameters and also allows handlers to be any Handler, including all Chains.
Originally sourced from Iron Router, Rusty Pipe adds additional metadata that can be accessed on each request to enable more advanced middlware based on the context of each route.
Example
extern crate iron;
extern crate router;
use iron::prelude::*;
use iron::status;
use rusty_pipe::Router;
fn main() {
let mut router = Router::new(); // Alternative syntax:
router.get("/", handler, "index"); // let router = router!(index: get "/" => handler,
router.get("/:query", handler, "query"); // query: get "/:query" => handler);
Iron::new(router).http("localhost:3000").unwrap();
fn handler(req: &mut Request) -> IronResult<Response> {
let ref query = req.extensions.get::<Router>().unwrap().find("query").unwrap_or("/");
Ok(Response::with((status::Ok, *query)))
}
}
Installation
If you're using cargo, just add router to your Cargo.toml
.
[dependencies]
rusty_pipe = "*"
Otherwise, cargo build
, and the rlib will be in your target
directory.
Examples
Dependencies
~5MB
~109K SLoC