Skip to main content

Simple & intuitive Python API for HORUS robotics framework - ultra-low latency IPC and real-time scheduling

Project description

HORUS Robotics - Python Bindings

PyPI Python License

Ultra-low latency robotics framework with Python bindings - 100x faster than ROS2.

HORUS is a production-grade robotics framework built in Rust, delivering 87ns IPC latency and 12M+ messages/second throughput. This package provides native Python bindings via PyO3.

Installation

pip install horus-robotics

Quick Start

import horus

# Create a publisher
pub = horus.Publisher("sensor.data")

# Create a subscriber
sub = horus.Subscriber("sensor.data")

# Publish data
pub.publish({"temperature": 25.5, "humidity": 60})

# Receive data
data = sub.receive()
print(data)

Features

  • Ultra-Low Latency: 87ns IPC latency (100x faster than ROS2)
  • High Throughput: 12M+ messages/second
  • Zero-Copy: Shared memory transport for maximum performance
  • Type-Safe: Strong typing with Pydantic-like validation
  • Cross-Language: Seamless interop with Rust and C++ nodes
  • Real-Time Ready: Priority-based scheduling with deadline guarantees

Core Components

Publisher/Subscriber (Hub)

Multi-producer multi-consumer pub/sub with ~481ns round-trip latency:

import horus

# Publisher
pub = horus.Publisher("robot.commands")
pub.publish({"velocity": [1.0, 0.0, 0.0]})

# Subscriber
sub = horus.Subscriber("robot.commands")
msg = sub.receive(timeout_ms=100)

Point-to-Point (Link)

Single-producer single-consumer for lowest latency (~248ns):

sender = horus.LinkSender("fast.channel")
receiver = horus.LinkReceiver("fast.channel")

sender.send(data)
data = receiver.recv()

Nodes

Create custom processing nodes:

import horus

class SensorNode(horus.Node):
    def __init__(self):
        super().__init__("sensor_node")
        self.pub = horus.Publisher("sensor.data")

    def tick(self):
        reading = self.read_sensor()
        self.pub.publish(reading)

# Run the node
node = SensorNode()
horus.run(node, rate_hz=100)

Message Types

HORUS provides standard robotics message types:

from horus.messages import (
    Twist,           # Velocity commands
    Pose,            # Position + orientation
    Image,           # Camera images
    PointCloud,      # 3D point clouds
    JointState,      # Robot joint positions
    LaserScan,       # LIDAR data
    Imu,             # IMU readings
    NavSatFix,       # GPS coordinates
    WrenchStamped,   # Force/torque sensor
)

Performance Comparison

Framework IPC Latency Throughput
HORUS 87ns 12M+ msg/s
ROS2 (FastDDS) 50-100us ~100K msg/s
ZeroMQ 10-30us ~1M msg/s

Documentation

Requirements

  • Python 3.9+
  • Linux (x86_64)
  • glibc 2.39+

Related Packages

  • horus - Full HORUS framework (Rust CLI + runtime)
  • horus-library - Standard message types and nodes

License

Apache-2.0 - see LICENSE

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

horus_robotics-0.1.7.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

horus_robotics-0.1.7-cp39-abi3-manylinux_2_39_x86_64.whl (26.3 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.39+ x86-64

File details

Details for the file horus_robotics-0.1.7.tar.gz.

File metadata

  • Download URL: horus_robotics-0.1.7.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.6

File hashes

Hashes for horus_robotics-0.1.7.tar.gz
Algorithm Hash digest
SHA256 29ee65dc4b4ce43ddf1dbafc25bc6c07c122a2f765df6356335cd14e4459acee
MD5 4b7aeb1013659972e8c106961b4d54ac
BLAKE2b-256 35645ce4de5681d0bc65b2581472bd6f15c71bc04dd02bc38ba753807c0a664a

See more details on using hashes here.

File details

Details for the file horus_robotics-0.1.7-cp39-abi3-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for horus_robotics-0.1.7-cp39-abi3-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 7dd906a12fc1f5a5a5baed25042ba4f5a5ef107fa6554cfc9715c63a54a89f6d
MD5 c127015d1c5f366afd053e9f8f7ff349
BLAKE2b-256 c3fd7d5d89b12ef319eee22677e9cffd4d4da6785f773cbc2023761fa2779bf8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page