Horus

Horus is a comprehensive workspace for Hero infrastructure components.

Structure

In '/bin' you have the binaries for the components of Horus

In '/lib' you have shared libraries.

Structure

horus/
├── bin/
│   └── supervisor/          # Hero Supervisor - job orchestration and runner management
└── lib/
    └── clients/
        └── supervisor/      # OpenRPC client for Hero Supervisor (native + WASM)

Components

Supervisor (bin/supervisor)

The Hero Supervisor manages job execution across distributed runners with:

  • Job lifecycle management (create, start, stop, delete)
  • Runner registration and management
  • Redis-based job queuing
  • Osiris integration for persistent storage
  • OpenRPC JSON-RPC API with authentication
  • CORS-enabled HTTP server

Coordinator (bin/supervisor)

The Hero Supervisor manages job execution across distributed runners with:

  • Job lifecycle management (create, start, stop, delete)
  • Runner registration and management
  • Redis-based job queuing
  • Osiris integration for persistent storage
  • OpenRPC JSON-RPC API with authentication
  • CORS-enabled HTTP server

Supervisor Client (lib/clients/supervisor)

OpenRPC client library for Hero Supervisor with dual-target support:

  • Native: Full async Rust client using jsonrpsee
  • WASM: Browser-compatible client for web applications

Building

Build everything

cargo build --workspace

Build supervisor binary

cargo build -p hero-supervisor

Build client library

cargo build -p hero-supervisor-openrpc-client

Build WASM client

cd lib/clients/supervisor
wasm-pack build --target web

Running

Start the supervisor

cargo run -p hero-supervisor -- \
  --bind-address 127.0.0.1 \
  --port 3030 \
  --redis-url redis://127.0.0.1:6379

With configuration file

cargo run -p hero-supervisor -- --config config.toml

Development

Run tests

cargo test --workspace

Check all code

cargo check --workspace

Format code

cargo fmt --all

Lint

cargo clippy --workspace -- -D warnings

Dependencies

  • Rust: 1.70+
  • Redis: Required for job queuing
  • Osiris: Optional, for persistent storage

License

MIT OR Apache-2.0

Installation

Horus is installed via heroscripts and herolib installers. This ensures safe, replicable, and versioned installation of Horus. See installation heroscript

Description
No description provided
Readme 534 KiB
Languages
Rust 96.6%
V 1.7%
HTML 0.9%
Shell 0.8%