2个版本

0.0.2 2021年6月13日
0.0.1 2021年4月14日

#1457HTTP服务器

MIT 许可证

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(),
    ))))
}

贡献

  1. 分叉
  2. 创建功能分支
  3. 提交你的更改
  4. 将你的本地更改基于主分支进行rebase
  5. 使用 cargo test 命令运行测试套件并确认通过
  6. 运行 cargo fmt 并通过 cargo clippy
  7. 创建新的Pull Request

许可证

MIT许可证

依赖项

~4–5.5MB
~92K SLoC