2.6 KiB
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