# Horus Horus is a comprehensive workspace for Hero infrastructure components. ## Structure In '/bin' you have the binaries for the components of Horus - [Supervisor](./bin/supervisor) - [Osiris Runner](./bin/runner) - [SAL Runner](./bin/runner) - [Hero Runner](./bin/runner) In '/lib' you have shared libraries. - [Clients](./lib/clients) ## 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 ```bash cargo build --workspace ``` ### Build supervisor binary ```bash cargo build -p hero-supervisor ``` ### Build client library ```bash cargo build -p hero-supervisor-openrpc-client ``` ### Build WASM client ```bash cd lib/clients/supervisor wasm-pack build --target web ``` ## Running ### Start the supervisor ```bash cargo run -p hero-supervisor -- \ --bind-address 127.0.0.1 \ --port 3030 \ --redis-url redis://127.0.0.1:6379 ``` ### With configuration file ```bash cargo run -p hero-supervisor -- --config config.toml ``` ## Development ### Run tests ```bash cargo test --workspace ``` ### Check all code ```bash cargo check --workspace ``` ### Format code ```bash cargo fmt --all ``` ### Lint ```bash 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](./scripts/install.md)