14 releases

0.4.0 Nov 7, 2017
0.3.0 Jan 11, 2017
0.2.1 Jul 29, 2016
0.1.0 Mar 25, 2016
0.0.3 Dec 17, 2014

#16 in HTTP server

Download history 1404/week @ 2019-01-25 1272/week @ 2019-02-01 1267/week @ 2019-02-08 1270/week @ 2019-02-15 1145/week @ 2019-02-22 1510/week @ 2019-03-01 1411/week @ 2019-03-08 1301/week @ 2019-03-15 1171/week @ 2019-03-22 1486/week @ 2019-03-29 1284/week @ 2019-04-05 1668/week @ 2019-04-12 1016/week @ 2019-04-19 1479/week @ 2019-04-26 1743/week @ 2019-05-03

6,165 downloads per month
Used in 32 crates (27 directly)

MIT license

9KB
87 lines

mount Build Status

Mounting middleware for the Iron web framework.

Example

fn send_hello(req: &mut Request) -> IronResult<Response> {
    println!("Running send_hello handler, URL path: {:?}", req.url.path());
    Ok(Response::with((status::Ok, "Hello!")))
}

fn intercept(req: &mut Request) -> IronResult<Response> {
    println!("Running intercept handler, URL path: {:?}", req.url.path());
    Ok(Response::with((status::Ok, "Blocked!")))
}

fn main() {
    let mut mount = Mount::new();
    mount.mount("/blocked/", intercept).mount("/", send_hello);

    Iron::new(mount).http("localhost:3000").unwrap();
}

Running the code above, the following HTTP requests would write the following line to the server process's stdout:

$ curl http://localhost:3000/
Running send_hello handler, URL path: [""]

$ curl http://localhost:3000/blocked/
Running intercept handler, URL path: [""]

$ curl http://localhost:3000/foo
Running send_hello handler, URL path: ["foo"]

$ curl http://localhost:3000/blocked/foo
Running intercept handler, URL path: ["foo"]

Overview

mount is a part of Iron's core bundle.

  • Mount a handler on a sub-path, hiding the old path from that handler.

Installation

If you're using Cargo to manage dependencies, just add mount to the toml:

[dependencies.mount]

git = "https://github.com/iron/mount.git"

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 cargo doc.

Examples

Get Help

One of us (@reem, @zzmp, @theptrk, @mcreinhard) 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

~3.5MB
~68K SLoC