#router #routing #rusty #web #http

rusty_pipe

A slightly better router for the Iron framework

6 releases

Uses old Rust 2015

0.1.5 Mar 8, 2018
0.1.4 Mar 7, 2018

#1254 in HTTP server

MIT license

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