Skip to main content

Crate continuo

Crate continuo 

Source
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;
pub use state::SharedState;

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§

ConfigurationChanged
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.
ServiceManager
Cloneable control handle for runnable services owned by crate::Runtime.
ServiceSnapshot
Point-in-time view of a runnable service owned by the runtime.

Enums§

ServiceManagerError
ServiceStartPolicy
Activation policy for one registered runnable service.
ServiceStatus
Observable state of one registered runnable service.

Traits§

ConfigObserver
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 configure with the prepared value.
HasConfigReader
Application-owned access to a common reader. No runtime state or lifecycle is required; implement this on the application’s state or context.