Open-source robotics runtime · Rust · Apache-2.0

HORUS

A real-time robotics runtime — a zero-copy nervous system for robots.

If phones have Android, robots deserve HORUS.

Rust · Python · C++|87 ns IPC latency|575× vs ROS 2|388

01

Overview

HORUS is a runtime for building robots — the layer that moves sensor data, control commands, and telemetry between the many small programs (nodes) that make up a robot. It is written in Rust, with first-class Python and C++ bindings.

Where conventional middleware serializes and copies every message, HORUS passes them through shared memory by pointer. Node-to-node latency is about 87 ns — roughly 575× faster than ROS 2 on the same zero-copy IPC benchmark — with bounded, real-time behaviour rather than best-effort delivery. The programming model is deliberately familiar: nodes, topics, and services, the way roboticists already think.

IPC latency87 ns — node → node, zero-copy shared memory
Throughput575× faster than ROS 2 — HORUS IPC benchmark
LanguagesRust (core) · Python · C++
LicenseApache-2.0
Sourcegithub.com/softmata/horus 388 ★ · 28 forks

02

Quick start

One installer gives you the CLI, the runtime, and a matching source tree — all from the same release tag, so the binary and the libraries it loads can never drift apart. Then follow the quick-start for your language.

# Install, then scaffold and run your first node
$ curl -fsSL https://github.com/softmata/horus/raw/main/install.sh | bash
$ horus new my_robot && cd my_robot && horus run

# Pin a release. The variable must land in bash's environment, not curl's —
# on curl's side nothing reads it and you quietly get the latest tag anyway.
$ curl -fsSL https://github.com/softmata/horus/raw/main/install.sh \
    | HORUS_VERSION=v0.4.0 bash

# Python — same runtime underneath. Keep the floor: the newest release on
# PyPI is 0.1.9 — it imports fine, then sees none of a 0.4.x CLI's topics.
$ pip install "horus-robotics>=0.4.0"

Rust needs no package step — the scaffold above points Cargo at the source tree the installer cached, and there is no crates.io package to add: the name there belongs to an unrelated crate. C++ builds against that same tree — link libhorus_cpp, include one header.

// my_node.cpp — integrate with an existing C++ stack
#include <horus/horus.hpp>

Full walkthrough: Installation · Rust · Python · C++.


03

Documentation

The full documentation is organised into fifteen sections. An index follows.


04

Resources