Skip to main content
At 30 Hz, traditional middleware burns 6 ms β€” 18% of your frame budget β€” just moving data between nodes. Cerulion gives that time back: ~60 ns for local subscribers via shared memory. Like a whiteboard in a shared office β€” the publisher writes once, every subscriber reads from the same location, nobody makes a copy. Serialization only happens when data actually needs to cross a network boundary. Full comparison across 13 dimensions β†’ One API. Two transports. Zero config.

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.
brew install cerulion/tap/cerulion
Verify the CLI is available β€” run cerulion --help

Create a Workspace

Initialize a new project with scaffolded structure.
cerulion workspace create my-robot
cd my-robot

Create Nodes

Create nodes that publish and subscribe to topics.
cerulion node create camera_pub --period-ms 33
cerulion node create display_sub --ext-trigger

Run Your Graph

Wire nodes together and execute.
cerulion graph create perception
cerulion graph run perception

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 Soonpip install cerulion β€” Native Python bindings with async/await support.

C++ SDK

Coming SoonHeader-only library with CMake integration. Perfect for embedded and robotics applications.
Ready to try Cerulion? Start with the quickstart and have a working camera-to-display pipeline in 5 minutes β€” or schedule a 15-min call with the team.