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 |
#2012 in HTTP server
3,589 downloads per month
Used in 34 crates
(28 directly)
9KB
87 lines
mount 
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
~112K SLoC