Zero-copy messaging for real-time systems. Cerulion handles the hard parts of robotics communication β you focus on your application logic.
- Sub-microsecond latency via shared memory (iceoryx2)
- Automatic transport selection β local or network, you donβt decide
- Type-safe pub/sub with ROS2-compatible message primitives
- Simple node-based architecture β define inputs, outputs, and triggers
Why Cerulion?
Traditional robotics middleware forces you to choose between performance and ease of use. Cerulion gives you both:| Scenario | Transport | Latency |
|---|---|---|
| Same machine | iceoryx2 (shared memory) | < 1 ΞΌs |
| Different machines | Zenoh (network) | 1-10 ms |
Core Concepts
Workspaces
Project containers with nodes, graphs, and configuration. One command creates everything you need.
Nodes
Processing units with typed inputs and outputs. Define triggers to control when they execute.
Graphs
YAML files that wire nodes together. Connect outputs to inputs, Cerulion handles the rest.
Topics
Named channels for pub/sub communication. Automatically created from graph wiring.
Getting Started
Install Cerulion
One command installs the CLI, core libraries, and shell completions.
Verify with
cerulion doctorCreate a Workspace
Initialize a new project with scaffolded structure.
Build Nodes
Create nodes that publish and subscribe to topics.
Run Your Graph
Wire nodes together and execute.
Whatβs Included
Cerulion CLI
Command-line interface for managing workspaces, nodes, graphs, and topics
Cerulion Core
Rust library with zero-copy pub/sub, automatic serialization, and dual transport
Shell Completions
Tab completions for bash, zsh, and fish β installed automatically
Coming Soon
Python SDK
Coming Soon
pip install cerulion β Native Python bindings with async/await support.C++ SDK
Coming SoonHeader-only library with CMake integration. Perfect for embedded and robotics applications.