Skip to main content
Built for roboticists

Robot middleware that just works.

No serialization on the local hot path. No QoS micromanagement. No surprises. Just typed messages over shared memory at the latency of a function call. Try the Quickstart

What Cerulion is

Cerulion is a Rust middleware for robotics and real-time systems. You compose your application as a graph of nodes that pass messages over zero-copy shared memory, and you build, wire, and run the whole thing through one CLI: cerulion. It gives you the latency of raw shared memory with the ergonomics of a typed, macro-driven node API. Runs are recordable to standard MCAP bags and re-executable byte-for-byte, robots are viewable across the network by default, and a live graph renders in Cerulion Studio as soon as you check a topic.
A Cerulion graph of nodes exchanging messages over shared memory
Cerulion is in closed alpha β€” early access for teams who want a faster, more deterministic robotics stack ahead of the public release. Everything documented here β€” the CLI, node macro, and graph/schema formats β€” is real and verified against the current build. Access is curated today; request an invite to start building.

Why teams use it

Zero-copy pub/sub

Nodes exchange messages over iceoryx2 shared memory. Reads and writes go straight to the payload, with no serialization on the local hot path.

Record and re-execute

Record any run to a standard MCAP bag, then re-run your nodes against it and verify the result matches the robot byte-for-byte.

Trigger policies

Decide when each node fires (periodic, data-triggered, synchronized, or external) with per-node tick deadlines that warn loudly when missed.

Ergonomic node API

Define a node as a Rust struct with #[cerulion_node]. Field attributes declare ports; the macro rewrites self.<port> access into zero-copy shared-memory reads and writes for you.

Fault isolation by default

A live graph runs as one process per group in lockstep, so a crashed node takes down its own group instead of the robot β€” with identical execution.

Works with ROS 2

254 built-in ROS 2 message types, and cerulion ros attach bridges an existing DDS robot’s topics into a Cerulion graph.

Start here

Installation

Set up the Rust toolchain, get the cerulion CLI, and verify it works.

Quickstart

Build and run a complete two-node graph, then watch its messages with topic echo.

Concepts

Learn the mental model: workspaces, nodes, graphs, topics, and schemas.