7 个版本
使用旧的 Rust 2015
0.1.6 | 2018年9月7日 |
---|---|
0.1.5 | 2018年7月25日 |
0.1.4 | 2018年6月6日 |
0.1.3 | 2018年5月20日 |
0.1.0 | 2018年3月28日 |
#247 在 #middleware
用于 arc-reactor
4KB
68 行
Arc-reactor
A 异步、可扩展、微型的 Rust 网络框架。
特性
-
异步。在 arc reactor 中,Service Handler 默认是异步的。
-
与 futures-await 集成。The
#[service]
proc_macro 不仅为您的路由处理程序派生ArcService
特性,而且还将其标记为#[async]
,这样您就可以在路由处理程序中使用 futures 而无需额外的压力。 -
直观的中间件系统。arc reactor 提供了一个易于理解的中间件系统。请参阅设计规范
-
简约。arc reactor 被设计成在 tokio 和 hyper 上非常薄的抽象。
-
TLS 支持。易于添加 TLS 支持。
-
选择使用 Nightly。arc reactor 使用了许多酷炫的功能,包括仅在 nightly 频道中可用的
proc_macros
,使用unstable
功能标志。
安装
将其添加到您的 cargo.toml
arc-reactor = "0.2"
Hello World(默认)
演示(不稳定)
Nightly 使用
最初,arc-reactor 是为 nightly 编译器设计的。但 libprocmacro
中的不稳定性导致它在每次发布新的 nightly 编译器时都会中断。
因此,默认情况下,arc-reactor 不再使用 nightly 编译器,并且可以与稳定编译器一起使用。🎉 这意味着实验性的 nightly 功能,包括过程宏,仅在 unstable
功能标志后面可用。
如果您希望使用带有启用 nightly 编译器和不稳定功能的 arc-reactor:建议您锁定编译器版本。直到 libprocmacro
稳定。
如果您希望使用 arc-reactor 的默认功能
- 实现了特性
ArcService
,用于所有满足签名Fn(Request, Response) -> FutureResponse
的函数。 - 实现了特性
MiddleWare<Request>
,用于所有满足签名Fn(Request) -> MiddleWareFuture<Request>
的函数。 - 实现了特性
MiddleWare<Response>
,用于所有满足签名Fn(Response) -> MiddleWareFuture<Response>
的函数。 - 从
futures-rs
中重新导出futures
,而不是futures-await
。 - 您将失去在 ServiceHandlers 和 MiddleWares 中对 futures 使用
await!
的能力。 - 目前,Multipart 的支持是通过不稳定特性实现的,因此您可能需要自己实现。
示例
请查看示例文件夹和 API 文档,以了解 arc reactor
的工作方式。
它有很好的文档,应该能让您迅速上手。
设计
强烈建议您阅读 设计文档,因为它全面介绍了 arc-reactor 的内部结构和所做的设计决策。
贡献
Arc-Reactor 通过中间件进行高度扩展,这些中间件放置在 contrib
模块中。
缺少的一些东西包括
- 日志记录器
- WebSocket
- 支持字节范围头
- 异步静态文件服务器
- JSON 主体解析器
- Multipart 支持
请随时提交 PR。
许可
请参阅 许可。
依赖项
~2MB
~47K SLoC