6 个版本
使用旧的 Rust 2015
0.1.5 | 2018 年 3 月 8 日 |
---|---|
0.1.4 | 2018 年 3 月 7 日 |
#1279 在 HTTP 服务器
50KB
1K SLoC
Rusty Pipe
Iron Web 框架的路由处理程序。
Rusty Pipe 是 Iron 的一个快速、方便且灵活的路由中间件。它允许使用复杂的 glob 模式和命名 URL 参数,并允许处理程序为任何 Handler,包括所有 Chain。
最初来源于 Iron Router,Rusty Pipe 增加了额外的元数据,可以在每个请求中访问,以便根据每个路由的上下文实现更高级的中间件。
示例
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)))
}
}
安装
如果您使用 cargo,只需将 router 添加到您的 Cargo.toml
。
[dependencies]
rusty_pipe = "*"
否则,执行 cargo build
,rlib 将位于您的 target
目录中。
示例
依赖项
~4.5MB
~113K SLoC