Router [![Build Status](https://secure.travis-ci.org/iron/router.png?branch=master)](https://travis-ci.org/iron/router) [![Crates.io Status](https://meritbadge.herokuapp.com/router)](https://crates.io/crates/router) ==== > Routing handler for the [Iron](https://github.com/iron/iron) web framework. Router 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. ## Example ```rust extern crate iron; extern crate router; use iron::prelude::*; use iron::status; use router::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 { let ref query = req.extensions.get::().unwrap().find("query").unwrap_or("/"); Ok(Response::with((status::Ok, *query))) } } ``` ## Overview Router is a part of Iron's [core bundle](https://github.com/iron/core). - Route client requests based on their paths - Parse parameters and provide them to other middleware/handlers ## Installation If you're using cargo, just add router to your `Cargo.toml`. ```toml [dependencies] router = "*" ``` Otherwise, `cargo build`, and the rlib will be in your `target` directory. ## [Documentation](http://ironframework.io/doc/router) Along with the [online documentation](http://ironframework.io/doc/router), you can build a local copy with `make doc`. ## [Examples](/examples) ## Get Help One of us is usually on `#iron` on the mozilla irc. Come say hi and ask any questions you might have. We are also usually on `#rust` and `#rust-webdev`.