40 lines
1.4 KiB
Markdown
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 |