> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cerulion.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Cerulion

> Deterministic, microsecond-scale IPC for robotics. The performance of bare shared memory with the ergonomics of a modern framework.

<div className="crl-eyebrow">Built for roboticists</div>

<p className="crl-serif" style={{ fontSize: "2.9rem", lineHeight: 1.1, margin: "0.5rem 0 0.9rem", letterSpacing: "-0.005em" }}>
  Robot middleware that <span className="crl-text-gradient-brand">just works</span>.
</p>

**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.**

<a href="/cerulion/quickstart" className="crl-cta-ember">Try the Quickstart</a>

## 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, plus a simulated clock that makes runs deterministic and
replayable. It's the foundation of a modern robotics stack — built to be the
faster, more deterministic successor to ROS 2.

<Frame>
  <img src="https://mintcdn.com/cerulion-5327fd47/lTRLJjqSsKCVFhMl/images/hero-light.webp?fit=max&auto=format&n=lTRLJjqSsKCVFhMl&q=85&s=cfc92dbf1adbd8639a374c7e178ec724" alt="A Cerulion graph of nodes exchanging messages over shared memory" className="block dark:hidden" width="1200" height="670" data-path="images/hero-light.webp" />

  <img src="https://mintcdn.com/cerulion-5327fd47/lTRLJjqSsKCVFhMl/images/hero-dark.webp?fit=max&auto=format&n=lTRLJjqSsKCVFhMl&q=85&s=d75ae5a07cc1d22151258ae1dd5df8e0" alt="A Cerulion graph of nodes exchanging messages over shared memory" className="hidden dark:block" width="1200" height="670" data-path="images/hero-dark.webp" />
</Frame>

<Info>
  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](/cerulion/installation) to start building.
</Info>

## Why teams use it

<CardGroup cols={2}>
  <Card title="Zero-copy pub/sub" icon="bolt" color="#0080FF">
    Nodes exchange messages over iceoryx2 shared memory. Reads and writes go
    straight to the payload, with no serialization on the local hot path.
  </Card>

  <Card title="Deterministic runs" icon="clock-rotate-left" color="#0080FF">
    Execution is driven by a simulated clock stepped in 1 ms increments, so the
    same graph and inputs produce the same ordering. That makes runs easy to
    debug and replay.
  </Card>

  <Card title="Trigger policies" icon="diagram-project" color="#0080FF">
    Decide when each node fires (periodic, data-triggered, synchronized, or
    external) with per-node tick deadlines that warn loudly when missed.
  </Card>

  <Card title="Ergonomic node API" icon="rust" color="#0080FF">
    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.
  </Card>
</CardGroup>

## Start here

<CardGroup cols={3}>
  <Card title="Installation" icon="download" href="/cerulion/installation" color="#0080FF">
    Set up the Rust toolchain, get the `cerulion` CLI, and verify it works.
  </Card>

  <Card title="Quickstart" icon="rocket" href="/cerulion/quickstart" color="#0080FF">
    Build and run a complete two-node graph, then watch its messages with
    `topic echo`.
  </Card>

  <Card title="Concepts" icon="lightbulb" href="/cerulion/concepts" color="#0080FF">
    Learn the mental model: workspaces, nodes, graphs, topics, and schemas.
  </Card>
</CardGroup>
