#ipc #bus #pubsub #rt #networking

bin+lib busrt

本地和网络 IPC 总线

19 个版本

0.4.10 2024年4月27日
0.4.9 2024年2月9日
0.4.8 2023年12月10日
0.4.7 2023年9月14日
0.3.6 2022年11月6日

#435 in 网络编程

Download history 48/week @ 2024-04-29 63/week @ 2024-05-06 24/week @ 2024-05-13 28/week @ 2024-05-20 25/week @ 2024-05-27 75/week @ 2024-06-03 24/week @ 2024-06-10 52/week @ 2024-06-17 17/week @ 2024-06-24 2/week @ 2024-07-01 86/week @ 2024-07-08 38/week @ 2024-07-15 30/week @ 2024-07-22 38/week @ 2024-07-29 51/week @ 2024-08-05 24/week @ 2024-08-12

148 次每月下载
用于 8 个Crates(7个直接使用)

Apache-2.0

270KB
7K SLoC

Rust 5K SLoC // 0.0% comments Python 1.5K SLoC // 0.0% comments TypeScript 635 SLoC // 0.2% comments JavaScript 121 SLoC // 0.1% comments Shell 14 SLoC

BUS/RT - Rust 原生 IPC 代理

什么是 BUS/RT

BUS/RT® 是一个 Rust 原生 IPC 代理,用 Rust/Tokio 编写,灵感来自 NATSZeroMQNanomsg。BUS/RT 快速、灵活且易于使用。

该库可以嵌入任何 Rust 项目或作为独立服务器使用。

BUS/RT 是 EVA ICS v4 的核心总线。

进程间通信

以下通信模式是开箱即用的

  • 一对一消息
  • 一对多消息
  • 发布/订阅

以下通道是支持的

  • 线程/未来的异步通道(仅限 Rust)
  • UNIX 套接字(本地机器,Linux/BSD)
  • TCP 套接字(Linux/BSD/Windows)

除了 Rust,BUS/RT 还为以下语言提供了绑定

Rust crate:https://crates.io/crates/busrt

技术文档

完整文档可在以下地址找到: https://info.bma.ai/en/actual/busrt/

一些数字

基准测试

CPU: i7-7700HQ

代理:4 个工作者,客户端:8 个,有效载荷大小:100 字节,本地 IPC(单个 UNIX 套接字),总计

阶段 iters/s
rpc.call 126_824
rpc.call+handle 64_694
rpc.call0 178_505
send+recv.qos.no 1_667_131
send+recv.qos.processed 147_812
send.qos.no 2_748_870
send.qos.processed 183_795

关于作者

波希米亚自动化 / Altertech 是一家拥有15年以上企业自动化和工业物联网经验的集团。我们的系统包括发电厂、工厂和城市基础设施。其中最大的系统拥有超过100万传感器和受控设备,并且这个数字每天都在不断提高。

依赖关系

~6–24MB
~373K SLoC