BUS/RT - Rust-native IPC broker

What is BUS/RT

BUS/RT® is a Rust-native IPC broker, written in Rust/Tokio, inspired by NATS, ZeroMQ and Nanomsg. BUS/RT is fast, flexible and very easy to use.

The library can be embedded in any Rust project or be used as a standalone server.

BUS/RT is the core bus of EVA ICS v4.

Inter-process communication

The following communication patterns are supported out-of-the-box:

The following channels are supported:

In addition to Rust, BUS/RT has also bindings for the following languages:

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

Technical documentation

The full documentation is available at: https://info.bma.ai/en/actual/busrt/

Some numbers

Benchmarks

CPU: i7-7700HQ

Broker: 4 workers, clients: 8, payload size: 100 bytes, local IPC (single unix socket), totals:

| stage | 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 |

About the authors

Bohemia Automation / Altertech is a group of companies with 15+ years of experience in the enterprise automation and industrial IoT. Our setups include power plants, factories and urban infrastructure. Largest of them have 1M+ sensors and controlled devices and the bar raises higher and higher every day.