finds.dev← search

// the find

softmata/horus

★ 367 · Rust · Apache-2.0 · updated Jun 2026

Fastest Robotics Runtime System. If phones have Android, robots deserve HORUS.

HORUS is a robotics middleware written in Rust that replaces ROS2's DDS transport with shared-memory ring buffers and lock-free synchronization, targeting lower latency and deterministic scheduling. It supports Rust, Python, and C++ nodes communicating over the same shared memory, with built-in safety monitoring, hardware drivers, and a CLI. It's aimed at robotics developers who are frustrated with ROS2's complexity and overhead but need a similar node/topic/service programming model.

- The architecture is technically sound: shared-memory SPSC/SPMC/MPMC ring buffers with lock-free ops genuinely do beat DDS serialization by orders of magnitude for same-host IPC, and the claimed 11–170ns latency figures are plausible and reproducible via the included benchmark suite.

- The test coverage is unusually thorough for a young project — chaos tests, fuzz targets on SHM headers and pod deserialization, cross-process crash recovery tests, and acceptance tests all present in the tree.

- The Rust macro DSL (node!, message!, service!, action!) keeps boilerplate low without hiding the important scheduling decisions, and the five execution class model is a cleaner abstraction than ROS2's executor mess.

- DLPack zero-copy GPU tensor handoff is a genuinely useful feature for perception pipelines — avoiding a CUDA→CPU→CUDA round-trip for every frame is non-trivial to implement correctly and saves real latency.

- The README explicitly admits it's 'validated in simulation' and solicits real-hardware testers — at v0.2.0 with 367 stars and 27 forks, there's essentially no production track record, which is a hard blocker for safety-critical robotics work.

- Cross-machine networking is listed as 'Coming Soon' (HORUS-Zenoh Bridge). Any multi-robot or cloud-edge deployment today means you're on a single host, which severely limits the distributed systems claims in the description.

- The 575x claim vs ROS2 is same-process shared memory vs DDS cross-process — that's comparing incompatible topologies. The more honest cross-process comparison still shows a real win (2x vs iceoryx2, ~585x vs DDS), but the headline number is going to mislead people into expecting universal 575x gains.

- The C++ binding uses a hand-rolled extern C FFI into libhorus_cpp rather than a generated ABI, which means ABI breaks on Rust version bumps will silently corrupt memory unless users pin their toolchain carefully — there's no versioned ABI stability guarantee mentioned anywhere.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →