hero/README.md
2025-07-29 01:15:23 +02:00

40 lines
1.4 KiB
Markdown

# Hero
Hero is a program that runs scripts in contexts on behalf of a peer. Hero aims to support a language sufficient to support all of one's digital actions. As such, hero can become a tool of digital sovereignty, allowing people and groups to own their own structured data and functionality to act on it.
## Terminology
| Term | Definition |
|---------------|-----------------------------------------------------------------------------|
| Hero | A program that runs scripts in various contexts on behalf of a peer. |
| Heroscript | A script that runs in a confined environment on behalf of a peer. |
| Rhai | A scripting language integrated into the Hero environment for script execution. |
## Core
In its core, a [dispatcher](#dispatcher) dispatches jobs to execute scripts to [workers](#worker) over redis. Workers spawn appropriate engine instances to execute scripts within the defined [confines]() of the job.
### Components
#### [Dispatcher](./core/dispatcher)
Component responsible for distributing jobs to workers over Redis.
#### [Engine](./core/engine)
A process that runs a script in a confined environment.
#### [Job](./core/job)
A unit of work that executes a Rhai or Hero script.
#### [Worker](./core/worker)
An entity that processes jobs dispatched by the dispatcher.
## Interfaces
### Websocket
### Unix