2 个版本
0.3.1 | 2020 年 1 月 2 日 |
---|---|
0.3.0 | 2019 年 6 月 6 日 |
#71 在 #事件驱动
165KB
2K SLoC
Gaea
构建事件驱动应用程序的低级别库,支持轻量级非阻塞 I/O。
这个包最初是 mio (v0.6.12, commit 4a716d0b687592368d9e283a6ea63aedb5877fc8) 的分支,改为单线程运行。但后来发生了巨大变化,成为事件中心,而不仅仅是提供了一个跨平台的 epoll/kqueue 实现。
需要 Rust 版本 1.33 或更高,因为 gaea 使用了 Rust 2018 版本的功能。
弃用通知
由于我加入了 Mio 团队,将停止开发 Gaea,转而开发 Mio 包,因此弃用 Gaea。
与 mio 的差异
与 mio 的主要两个差异是
- 专注于单线程性能。
- 不支持 Windows。
这个包的目标是降低锁和/或原子操作的开销,代价是放弃了多线程用户队列。这意味着与 mio 相比,这个包的使用方式变为每个线程使用一个 OsQueue
(Poll
在 mio 中) 。而在使用 mio 时,您可能会为整个应用程序使用单个 Poll
实例。
在重构代码时,由于操作系统提供的底层轮询技术与 epoll 和 kqueue 差距太大,因此移除了 Windows 支持。Carl Lerche (@carllerche,mio 的作者) 在支持 Windows 方面做得非常出色,但我没有兴趣支持 Windows(我根本不用)。
操作系统支持
以下平台受支持
- Linux(生产目标),以及
- macOS(开发目标)。
以下平台应该可以工作,因为代码可以编译
- FreeBSD,
- NetBSD,以及
- OpenBSD。
文档
API 文档 可在 docs.rs 上找到。
许可证
在 MIT 许可证下授权 (LICENSE 或 https://opensource.org/licenses/MIT)。
贡献
除非您明确声明,否则您有意提交以包含在您的工作中的任何贡献均应按照上述条款进行许可,不得附加任何额外条款或条件。
依赖关系
~130KB