10 个版本 (5 个重大更改)
使用旧的 Rust 2015
0.6.3 | 2016 年 3 月 21 日 |
---|---|
0.6.2 | 2016 年 3 月 4 日 |
0.5.1 | 2016 年 2 月 4 日 |
0.4.0 | 2016 年 1 月 4 日 |
0.1.0 | 2015 年 8 月 17 日 |
#887 在 异步
每月 388 次下载
在 9 crates 中使用
55KB
1K SLoC
转子
状态 | Alpha |
---|---|
示例 | TCP 回显服务器,TCP 客户端(telnet) |
生态系统 | 使用 rotor 的库和应用程序 |
文档 | http://tailhook.github.com/rotor/ |
基于 mio 的 rust 框架,用于以简单和可组合的方式执行 I/O。
rotor 核心(此 crate)基本上包括
- 一个事件循环处理程序(在 mio 的术语中),它将 mio 事件转换为特定状态机的事件
- 一种 Future 类型,它允许以安全高效的方式在状态机之间进行通信
- 一种简单的方式将多个库(例如多个协议处理程序)组合成一个单一的 mio 事件循环
最终,rotor 是构建在顶部上的最小化核心。它小于 0.5KLoC。
您通常需要使用一些更高级的抽象。例如,您应该使用流抽象(尚未实现)来制作 TCP 协议解析器。
基准测试
这些基准测试基于 旧版本的 此示例。希望我们很快会有更新的基准测试。
只有少数微基准测试,以显示框架有良好的性能。
在几岁旧笔记本电脑(i7-3517U CPU @ 1.90GHz)上的性能
> wrk -t2 -c 400 https://127.0.0.1:8888/ Running 10s test @ https://127.0.0.1:8888/ 2 threads and 400 connections Thread Stats Avg Stdev Max +/- Stdev Latency 11.19ms 18.03ms 627.44ms 99.54% Req/Sec 19.66k 1.76k 21.93k 81.00% 391170 requests in 10.01s, 32.83MB read Requests/sec: 39071.42 Transfer/sec: 3.28MB
在较新的桌面级 CPU(i7-4790K CPU @ 4.00GHz)上的性能
> ./wrk -t 2 -c 400 http://127.0.0.1:8888 Running 10s test @ http://127.0.0.1:8888 2 threads and 400 connections Thread Stats Avg Stdev Max +/- Stdev Latency 2.24ms 1.56ms 126.94ms 99.91% Req/Sec 91.35k 2.27k 93.76k 98.00% 1818133 requests in 10.00s, 152.58MB read Requests/sec: 181781.96 Transfer/sec: 15.26MB
注意:这两个基准测试都是在 单线程 服务器上运行的。
这些基准测试太早了(不是 HTTP 的完整实现),因此没有列出比较基准测试。
依赖关系
~3.5MB
~70K SLoC