# 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