28 releases
Uses old Rust 2015
0.6.0 | Nov 7, 2017 |
---|---|
0.5.1 | Jan 23, 2017 |
0.4.0 | Sep 4, 2016 |
0.2.0 | Jul 26, 2016 |
0.0.4 | Dec 28, 2014 |
#1424 in HTTP server
4,784 downloads per month
Used in fewer than 58 crates
22KB
356 lines
Router
Routing handler for the 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
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<Response> {
let ref query = req.extensions.get::<Router>().unwrap().find("query").unwrap_or("/");
Ok(Response::with((status::Ok, *query)))
}
}
Overview
Router is a part of Iron's core bundle.
- 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
.
[dependencies]
router = "*"
Otherwise, cargo build
, and the rlib will be in your target
directory.
Documentation
Along with the online documentation,
you can build a local copy with make doc
.
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
.
Dependencies
~5MB
~110K SLoC