Files
horus/README.md
2025-11-18 20:39:25 +01:00

2.6 KiB

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