#applications #aeron #media #messaging #client #udp #driver

bin+lib aeron-rs

Aeron 客户端库 - 基于 Rust 的快速 UDP 消息

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 多媒体

Download history 55/week @ 2024-03-11 23/week @ 2024-03-18 55/week @ 2024-03-25 24/week @ 2024-04-01 20/week @ 2024-04-22 27/week @ 2024-05-06 15/week @ 2024-05-13 2/week @ 2024-05-20 6/week @ 2024-05-27 22/week @ 2024-06-03 9/week @ 2024-06-10 9/week @ 2024-06-17 26/week @ 2024-06-24

66 个月下载量

Apache-2.0

1MB
16K SLoC

Rust 编写的 Aeron 客户端

Crates.io minimum rustc version Build Status

关于 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