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

#571 in HTTP server

Download history 1810/week @ 2023-10-17 2138/week @ 2023-10-24 2183/week @ 2023-10-31 2374/week @ 2023-11-07 1477/week @ 2023-11-14 1799/week @ 2023-11-21 1518/week @ 2023-11-28 1219/week @ 2023-12-05 1716/week @ 2023-12-12 1514/week @ 2023-12-19 1325/week @ 2023-12-26 1105/week @ 2024-01-02 1792/week @ 2024-01-09 1562/week @ 2024-01-16 1308/week @ 2024-01-23 1034/week @ 2024-01-30

5,898 downloads per month
Used in fewer than 58 crates

MIT license

22KB
356 lines

Router Build Status Crates.io Status

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
~124K SLoC