<h1 align="center">
boluo
</h1>
<p align="center">
简单易用的高性能异步网络框架
</p>
## 介绍
`boluo` 是一个基于 `tokio` 和 `hyper` 开发的轻量级路由层,几乎没有额外的性能开销,拥有极快的运行速度。
## 特点
- 简单清晰的路由定义,支持嵌套路由、宏定义路由和路由合并。
- 提供核心特征 `Service` 和 `Middleware`,灵活且易于扩展。
- 提供集中化的错误处理和错误传播机制。
## 可选功能
| http1 | 启用HTTP1服务器 | 是 |
| http2 | 启用HTTP2服务器 | |
| multipart | 添加对 `multipart/form-data` 格式的支持 | |
| sse | 添加对服务器发送事件的支持 | |
| ws | 添加对网络套接字的支持 | |
| static-file | 添加对静态文件的支持 | |
## 快速开始
新建项目:
```bash
cargo new demo && cd demo
```
添加依赖:
```toml
[dependencies]
boluo = "0.7"
tokio = { version = "1", features = ["full"] }
```
用以下内容覆盖 `src/main.rs`:
```rust
use boluo::response::IntoResponse;
use boluo::route::Router;
use boluo::server::Server;
use tokio::net::TcpListener;
#[tokio::main]
async fn main() {
let listener = TcpListener::bind("127.0.0.1:3000").await.unwrap();
let app = Router::new().mount(hello);
Server::new(listener).run(app).await.unwrap();
}
#[boluo::route("/", method = "GET")]
async fn hello() -> impl IntoResponse {
"Hello, World!"
}
```
运行项目:
```bash
cargo run
```
访问服务:
```bash
curl http://127.0.0.1:3000/
```
## 更多示例
[在这里](../examples/)可以找到更多的示例代码。在示例目录中,你可以通过以下命令运行示例:
```bash
cargo run --bin hello
```
## 支持的最低 Rust 版本(MSRV)
支持的最低 Rust 版本为 `1.85.0`。