4 个版本
0.1.3 | 2020年11月20日 |
---|---|
0.1.2 | 2020年10月2日 |
0.1.1 | 2020年4月27日 |
0.1.0 | 2020年4月14日 |
#228 in 多媒体
66 个月下载量
1MB
16K SLoC
Rust 编写的 Aeron 客户端
关于 aeron-rs
Aeron 是一种高效可靠的 UDP 和 IPC 消息传输方式。最初由 RealLogic 开发,并在 GitHub 上托管 real-logic/aeron
Aeron 有两个主要组件
- 媒体驱动程序
- 客户端库
客户端库与应用程序链接,允许多个应用程序通过媒体驱动程序(s)相互通信。有关 Aeron 的工作原理的更多信息,请参阅 文档。
aeron-rs 库实现了与 Aeron 媒体驱动程序一起工作的客户端功能。要获得功能系统,需要从 real-logic/aeron 下载(并编译)媒体驱动程序,并使用 aeron-rs 编写一些启用 Aeron 的应用程序。此类应用程序的示例可在 bin 中找到,以及库集成 tests 中。
为什么选择 Aeron?
如果您需要组织快速有序的消息流,Aeron 可能是一个不错的选择。有许多广泛使用的消息框架,为了选择适合您特定情况的正确框架,最好在接近真实场景的情况下测试它们,并比较性能。以下是一些为什么 Aeron 可能是一个好选择的原因
- 支持各种传输媒体,无需更改应用程序代码即可在媒体之间切换。应用程序今天可以使用 IPC(共享内存),并可以在配置更改和重启后切换到 UDP。
- 可以通过 UDP 工作,这通常比通过 TCP(如其他一些消息系统所做的那样)更快。
- 提供可靠且有序的消息流(即使在UPD上)。并非所有快速消息框架都保证消息顺序,但Aeron可以。
运行库测试
针对aeron-rs的集成测试假定媒体驱动程序可执行文件(aeronmd)位于PATH中。因此,在运行这些测试之前,请相应地安装aeronmd。此外,集成测试设计为顺序逐个运行。因此,请使用以下
cargo test -- --test-threads=1
命令来运行它们。
贡献者提示
如果您使用符合POSIX规范的操作系统(或者至少有/bin/sh
),您可以使用预定义的git pre-push钩子来确保满足编码标准。
ln -s ../../.pre-push.sh .git/hooks/pre-push
此外,如果您使用带Rust插件的IntelliJ IDEA系列IDE,您可以启用自动格式化
设置->语言和框架->Rust->Rustfmt->保存时运行rustfmt
依赖项
~6–14MB
~163K SLoC