2个版本
0.0.2 | 2021年6月13日 |
---|---|
0.0.1 | 2021年4月14日 |
#1457 在 HTTP服务器
13KB
247 行
Keiro
Keiro 是一个轻量级Rust HTTP服务路由器。它基于 hyper。
用法
use std::convert::Infallible;
use std::net::SocketAddr;
use hyper::{Body, Request, Response, Server};
use keiro::prelude::*;
use keiro::Router;
#[tokio::main]
async fn main() {
let mut router = Router::new();
router.get("/", index);
router.get("/hello/:user1/from/:user2", hello);
router.get("/hi/*path", hi);
let addr = SocketAddr::from(([0, 0, 0, 0], 8080));
Server::bind(&addr)
.serve(router.into_service())
.await
.unwrap();
}
async fn index(_req: Request<Body>) -> Result<Response<Body>, Infallible> {
Ok(Response::new(Body::from("Hello keiro!")))
}
async fn hello(req: Request<Body>) -> Result<Response<Body>, Infallible> {
let params = req.params().unwrap();
Ok(Response::new(Body::from(format!(
"Hello {} from {}!",
params.find("user1").unwrap(),
params.find("user2").unwrap(),
))))
}
async fn hi(req: Request<Body>) -> Result<Response<Body>, Infallible> {
let params = req.params().unwrap();
Ok(Response::new(Body::from(format!(
"Hello {}!",
params.find("path").unwrap(),
))))
}
贡献
- 分叉
- 创建功能分支
- 提交你的更改
- 将你的本地更改基于主分支进行rebase
- 使用
cargo test
命令运行测试套件并确认通过 - 运行
cargo fmt
并通过cargo clippy
- 创建新的Pull Request
许可证
依赖项
~4–5.5MB
~92K SLoC