1个不稳定版本
0.1.0 | 2021年8月26日 |
---|
#738 在 HTTP服务器
32KB
790 行
rs-express
rs-express
是一个用Rust编写的简单Web框架,尽量接近 Express.js。
此项目的目标是允许Node.js Web开发人员轻松地将他们的Web服务迁移到Rust,而无需学习新的Web框架。
大多数API将与Node.js版本非常相似,甚至在Rust的限制下是相同的。
为了展示其相似性,以下是来自express-js github仓库的 Hello World
示例
const express = require('express')
const app = express()
app.get('/', function (req, res) {
res.send('Hello World')
})
app.listen(3000)
以下是rs-express中的示例
use rs_express::{App, NextFunction, Request, Response};
#[tokio::main]
async fn main() {
let mut app: App<()> = App::new();
app.get(
"/",
|_req: &mut Request<()>, res: &mut Response, _next: &mut NextFunction| {
res.send("Hello, World");
},
);
app.listen(3000).await.expect("Failed to listen");
}
安装
[dependencies]
rs_express = "0.1.0"
功能
- 熟悉的API
- 关注高性能
- 简单易用
- 应用程序级状态
- 简单且健壮的路由
- 易于测试功能
此外,由于它基于 hyper 构建,它提供(摘自其README)
- HTTP/1和HTTP/2
- 异步设计
- 性能领先
- 经过测试且正确
- 广泛的生产使用
示例
所有示例都在 examples 文件夹中。
要运行特定示例,请运行以下命令: cargo run --example <example-name>
例如 cargo run --example hello-world
。
要获取响应,请使用此地址: https://127.0.0.1:3000
。例如,curl https://127.0.0.1:3000/hello
将返回 Hello, World
。
依赖项
~6–9MB
~146K SLoC