14 个版本
使用旧的 Rust 2015
0.2.4 | 2018 年 9 月 7 日 |
---|---|
0.2.3 | 2018 年 7 月 25 日 |
0.1.8 | 2018 年 6 月 6 日 |
0.1.7 | 2018 年 5 月 23 日 |
0.1.2 | 2018 年 3 月 28 日 |
#660 在 HTTP 服务器
21 每月下载次数
255KB
3K SLoC
Arc-reactor
一个用于 Rust 的异步、可扩展、微型 Web 框架。
特性
-
异步。在 arc reactor 中,服务处理器默认是异步的。
-
与 futures-await 集成。`
#[service]
` proc_macro 不仅为你的路由处理器推导出 `ArcService
` 特性,还将其标记为 `#[async]
`,这样你可以在路由处理器中无额外压力地等待 future。 -
直观的中间件系统。arc reactor 提供了一个易于理解的中间件系统。请参阅设计规范
-
极简主义。arc reactor 被设计成在 tokio 和 hyper 之上的一个非常薄的解释层。
-
TLS 支持。易于添加 TLS 支持。
-
选择 Nightly。arc reactor 使用了许多酷炫的功能,包括仅在 nightly channel 上可用的 `
proc_macros
`,使用 `unstable
` 功能标志。
安装
将以下内容添加到你的 `cargo.toml
arc-reactor = "0.2"
Hello World (默认)
演示(不稳定)
Nightly 使用
最初,arc-reactor 是为 nightly 编译器设计的。但 libprocmacro
的不稳定性导致每次发布新的 nightly 编译器时都会中断。
因此,默认情况下,arc-reactor 不再使用 nightly 编译器,将与稳定编译器一起直接工作。🎉 这意味着实验性的 nightly 功能,包括 proc_macros,仅可在 `unstable
` 功能标志之后使用。
如果你希望使用带有 nightly 编译器和启用不稳定功能的 arc-reactor:建议你锁定编译器版本。直到 libprocmacro
稳定下来。
如果你希望使用 arc-reactor 的默认功能
- 实现了满足签名 `
Fn(Request, Response) -> FutureResponse
` 的所有函数的 `ArcService
` 特性。 - 为满足签名
Fn(Request) -> MiddleWareFuture<Request>
的所有函数实现了特质MiddleWare<Request>
- 为满足签名
Fn(Response) -> MiddleWareFuture<Response>
的所有函数实现了特质MiddleWare<Response>
- 使用
futures
替代了futures-await
从futures-rs
中重新导出。 - 您将失去在 ServiceHandlers 和 MiddleWares 中对 futures 使用
await!
的能力。 - 目前,Multipart 的支持是通过不稳定特性实现的,因此您可能需要自行实现。
示例
查看示例文件夹和 API 文档 以了解 arc reactor
的工作方式。
它有很好的文档,应该能帮助您快速入门。
设计
强烈建议您阅读 设计文档,因为它提供了 arc-reactor 内部结构和所做设计决策的全面披露。
贡献
Arc-Reactor 通过放置在 contrib
模块中的中间件实现高度可扩展。
缺少的一些功能包括
- 日志记录器
- WebSocket
- 支持字节范围头部
- 异步 StaticFileServer
- JSON 主体解析器
- Multipart 支持
请随时提交 PR。
许可证
请参阅 许可证。
依赖项
~16–28MB
~408K SLoC