14 releases

Uses old Rust 2015

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

#434 in HTTP server

Download history 1560/week @ 2023-11-05 888/week @ 2023-11-12 1091/week @ 2023-11-19 957/week @ 2023-11-26 745/week @ 2023-12-03 874/week @ 2023-12-10 1026/week @ 2023-12-17 748/week @ 2023-12-24 633/week @ 2023-12-31 1042/week @ 2024-01-07 898/week @ 2024-01-14 855/week @ 2024-01-21 635/week @ 2024-01-28 671/week @ 2024-02-04 999/week @ 2024-02-11 1234/week @ 2024-02-18

3,734 downloads per month
Used in 34 crates (28 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

~5MB
~127K SLoC