A Scopes is a type-safe dependency injection container in Rind that holds runtime-global objects. Scopes are populated by Orchestrators during the Boot sequence and injected into Runtimes during execution.
Runtime Scope
A Runtime Scope is a collection of unique types used by a single runtime.
- Type-Safe: Values are stored and retrieved by their Rust
TypeId. - Stateless Storage: Allows Runtimes to access handles (like loggers or PAM sessions) without owning them.
- Global Contribution: Orchestrators can inject “Global” definers that apply to every runtime scope.
Scope Builder
The Scope Builder is the tool used by Orchestrators during the build_scope phase of the Boot cycle.
- Isolation: Ensures that each runtime only receives the specific types it needs.
- Initialization: Defers value creation until the scope is actually built for a specific execution phase.