Files
horus/README.md
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

107 lines
2.1 KiB
Markdown

# 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
```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)