Getting Started with C++

C++ bindings for HORUS are currently in development. When released, they will give C++ developers direct access to HORUS's shared-memory IPC, real-time scheduling, and the full message type system -- with near-zero overhead.

Planned Approach

The bindings will use smart codegen driven by #[horus_api] annotations on the Rust source. Rather than hand-writing CXX bridge code, a code generator will automatically produce idiomatic C++ headers and implementation files from annotated Rust APIs. This keeps the loan-pattern architecture (6 ns constant overhead) while automating the entire bridge layer.

Key goals for the C++ bindings:

  • Idiomatic C++ API -- RAII resource management, STL-compatible containers, and familiar naming conventions.
  • Zero-copy where possible -- Shared-memory topics will be accessible without serialization round-trips.
  • Header-only consumer layer -- Include a single header to get started; no separate link step beyond the HORUS runtime.
  • Full message compatibility -- Every message type available in Rust and Python will also be available in C++.

Current Status

The implementation order is: GPU native layer, then C++ bindings, then embedded targets. C++ bindings are the next major language milestone after the GPU work lands.

Stay Updated