Timur Gordon f66edba1d3 Add coordinator client library, installation scripts, and new test runners
- Add coordinator client library to workspace
- Add installation documentation and heroscript
- Add new test runners for Osiris and Sal
- Update hero runner test to handle invalid heroscript errors
- Update README with installation instructions
2025-11-17 10:56:13 +01:00
2025-11-14 11:11:26 +01:00
2025-11-13 20:44:00 +01:00

Horus

Horus is a comprehensive workspace for Hero infrastructure components.

Structure

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

Components

Hero 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

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%