Expand description
§continuo
Agnostic service composition primitives for multi-service Rust applications.
No application state, no configuration, no HTTP, no TLS, no DB dependency.
Pull this crate into any Rust project with multiple services; bring your
own state type, implement state::SharedState and optionally
registry::ReloadState on it, then use registry::Registry with the
registry::Component / registry::Bootable / registry::Reloadable /
registry::Runnable / registry::Finalizable traits.
The error model (registry::Error, registry::BoxError, registry::Result)
lives inside the registry module because it is a registry concern —
helper primitives such as gate have their own semantics and do not
share this error type.
Re-exports§
pub use events::Event;pub use events::ProcessEventBus;pub use events::ReloadRequired;pub use events::ShutdownInitiated;pub use execution::ExecutionDomain;pub use execution::ExecutionDriver;pub use execution::ExecutionFuture;pub use execution::ExecutionSpec;pub use execution::ExecutorKind;pub use execution::ExecutorSpec;pub use execution::PollPriority;pub use execution::PreparedExecution;pub use execution::SchedulingPolicy;pub use fleet::Dispatch;pub use fleet::DispatchPolicy;pub use fleet::Dispatched;pub use fleet::Scope;pub use fleet::Scoped;pub use gate::Gate;pub use gate::GateDrainOutcome;pub use gate::Permit;pub use guard::Guard;pub use guard::GuardGroup;pub use registry::AnyComponent;pub use registry::AnyRunnable;pub use registry::Bootable;pub use registry::BoxError;pub use registry::Component;pub use registry::ComponentOrder;pub use registry::Error;pub use registry::Finalizable;pub use registry::FinalizeFailure;pub use registry::FinalizeOutcome;pub use registry::MissingDependency;pub use registry::Register;pub use registry::Registry;pub use registry::ReloadFailure;pub use registry::ReloadOutcome;pub use registry::ReloadState;pub use registry::Reloadable;pub use registry::Resolve;pub use registry::Result;pub use registry::Runnable;pub use registry::RunnableInstance;pub use registry::StdError;pub use registry::ValidationFailure;pub use registry::ValidationOutcome;pub use state::HasEvents;pub use state::HasRegistry;
Modules§
- events
- Process-local typed event bus.
- execution
- Optional executor placement and poll scheduling for runnable generations.
- fleet
- Fleet placement contracts, independent of execution engines and transports.
- gate
- Graceful shutdown gate primitive.
- guard
- registry
- state
Structs§
- Configuration
Changed - Type-addressed config invalidation, consumed by Runtime’s control loop.
- RunContext
- Cancellation scope for one live generation of a
crate::Runnable. - RunIdentity
- Managed runnable instance name and its local generation number.
- Runtime
- Owns the live generations of every registered runnable service.
- Service
Manager - Cloneable control handle for runnable services owned by
crate::Runtime. - Service
Snapshot - Point-in-time view of a runnable service owned by the runtime.
Enums§
- Service
Manager Error - Service
Start Policy - Activation policy for one registered runnable service.
- Service
Status - Observable state of one registered runnable service.
Traits§
- Config
Observer - Applies an already-prepared configuration in response to a source change. The runtime calls this outside the native watcher thread. It does not read files again and is independent of an explicit/manual reload request.
- Configurable
- Typed application configuration. Congif reads and validates the declared
source before the lifecycle invokes
configurewith the prepared value. - HasConfig
Reader - Application-owned access to a common reader. No runtime state or lifecycle is required; implement this on the application’s state or context.