2个版本
使用旧的Rust 2015
0.2.1 | 2018年2月12日 |
---|---|
0.2.0 | 2018年2月12日 |
#1310 在 HTTP服务器
52KB
1K SLoC
Ferrum Router
Ferrum框架的路线处理程序。
Ferrum Router 是 Ferrum 的高效、方便且灵活的路由中间件。它允许复杂的 glob 正则表达式模式和命名 URL 参数,还允许处理程序为任何 Handler,包括所有 Chains。
示例
extern crate ferrum;
extern crate ferrum_router;
use ferrum::*;
use ferrum_router::{Router, Id};
fn main() {
let mut router = Router::new(); // Alternative syntax:
// let router = router!(
router.get("/", handler, None); // index: get "/" => handler,
router.get("/{query}", handler, Id::some("query")); // query: get "/{query}" => handler "query");
Ferrum::new(router).http("localhost:3000").unwrap();
fn handler(request: &mut Request) -> FerrumResult<Response> {
let params = request.extensions.get::<Router>().unwrap();
let query = params.get("query").map(|value| value.as_str()).unwrap_or("/");
Ok(Response::new().with_content(query, mime::TEXT_PLAIN))
}
}
概览
路由器是 Ferrum 的 核心包 的一部分。
- 根据它们的路径路由客户端请求
- 解析参数并将其提供给其他中间件/处理程序
安装
如果您正在使用 cargo,只需将 ferrum-router 添加到您的 Cargo.toml
。
[dependencies]
ferrum-router = "*"
否则,cargo build
,rlib 将位于您的 target
目录中。
示例
查看 示例 目录!
您可以使用 cargo run --example example-name
运行单个示例。注意,对于基准测试,您应该确保使用带有 --release
标志的 Rust 夜间工具链,这将导致 cargo 以优化方式编译整个工具链。如果没有 --release
,您将得到非常令人沮丧的数字。
基准测试
要运行基准测试,请使用 Rust 夜间工具链
rustup default nightly
cargo bench --features "nightly"
许可证
MIT
依赖项
~14MB
~275K SLoC