5 个版本
0.8.1 | 2023 年 9 月 9 日 |
---|---|
0.8.0 | 2023 年 8 月 19 日 |
0.7.6 | 2023 年 8 月 5 日 |
0.7.5 | 2023 年 7 月 30 日 |
0.7.0 | 2023 年 7 月 28 日 |
#444 in HTTP 服务器
33KB
731 行
Maria.rs,一个类似于 ExpressJs 的简单 Rust 框架
为什么?
- 玛丽亚是为从 Nodejs 切换到 Rust 的 Web 开发者开发的,你可以轻松地适应 Maria.rs 代码。
它包括什么?
- 路由器
- JSON 处理
- 处理器
- 异步
- 特质
- 多线程
示例
- Hello World 示例
use maria::{ Request, Response, Router, handler, HandlerFn, Arc, Mutex};
#[tokio::main]
async fn main(){
//defining first handler
let home: HandlerFn = handler!(_req, res, {
res.send_html("<h1>Hello from Maria!</h1>");
});
// init the router
let mut router = Router::new();
// add our handler to router
router.get("/", vec![home]);
// that's it!
router.listen(8080).await;
}
发布说明
0.8.1
添加了 Router.r#use。
- 我不能将其命名为 Router.use,因为 Rust 已经有一个关键字 use。
- 但你可以使用 Router.r#use();
- 与 expressjs Router.use 方法相同。
- 你可以为所有方法和所有路径定义某些内容
- 示例
-
router.r#use(vec![handler!(_req,_res,{ println!("Something has came!"); })]);
- 此外,readme 也更新了新的处理器!用法
0.8.0
添加了新的处理器!宏来定义处理器,快速头更改
-
现在你可以使用处理器!宏定义处理器,示例
-
let home: HandlerFn = handler!(_req, res, { res.send_text("Hello world!"); })
-
添加了 2 个示例
-
添加了基本功能文档
-
到此为止。此外,文档将在下一个版本中到来。
0.7.6
添加了路径参数通配符。
- 路径参数 /:*param_key 添加。
- 通配符可以取任何参数
- 例如:file/:*path -> file/folderpath/anotherfolder/file.txt
- 参数: *path: folderpath/anotherfolder/file.txt
0.7.5
快速修复?
- 问题是它在进入处理函数时会耗尽路由。
- 但排空会将所有内部 vec 耗尽到另一个 vec 中。
- 因此,这个问题在响应路由后会导致 404。
- 还删除了一个小的调试日志。
0.7.4
准备发布!
- 添加了新的闭包类型处理器。
- 一些快速死锁修复。
- 完全多线程。
- Cargo.toml 准备发布!
- 一些警告修复。
依赖项
~3–10MB
~91K SLoC