bissel
bissel is an experimental robotics-focused middleware for embedded Linux. It uses a star-shaped network topology, with a focus on ease-of-use and transparent design and operation. It is more similar to ZeroMQ than to higher-level frameworks like ROS/2, but uses central coordination process similar to MOOS-IvP. Bissel currently supports both publish/subscribe and publish/request messaging patterns over TCP.
Under the hood, bissel relies on:
sled: High-performance embedded, thread-safe databasetokio: Asynchronous runtime, enabling a large number of simultaneous connectionspostcard: Efficient#![no_std]-compatible, serde-based de/serializer designed for embedded or constrained environments
use *;
use ;
// Any type implementing Debug and serde's De/Serialize traits are Bissel-compatible
// (the standard library Debug and Clone traits are also required)
Benchmarks
Preliminary benchmark data is showing round-trip message times (publish-request-reply) on locahost using the --release
compilation profile, on the README's Coordinate data (strongly-typed, 8 bytes) to be ~100 microseconds.
Additional benchmarking information can be found using cargo run --release --example benchmark.
License
This library is licensed under the Mozilla Public License, version 2.0 (MPL-2.0)