Skip to main content

Crate subc_daemon

Crate subc_daemon 

Source
Expand description

subc daemon core.

This crate owns the loopback TCP transport and the thin splice-router core: routing decisions are made from the 21-byte envelope header, while message bodies are carried as opaque bytes and are never deserialized by the router.

Re-exports§

pub use control::ControlHandler;
pub use control::MIN_SUPPORTED_VERSION;
pub use forwarding::ForwardingError;
pub use forwarding::ForwardingTable;
pub use forwarding::ModuleEndpointId;
pub use control::DEFAULT_ROUTE_BIND_BREAKER_COOLDOWN;
pub use control::DEFAULT_ROUTE_BIND_BREAKER_THRESHOLD;
pub use control::DEFAULT_ROUTE_BIND_RELAY_TIMEOUT;
pub use identity::RequestIdentity;
pub use identity::SessionId;
pub use observability::ConnectedClients;
pub use observability::DaemonCounters;
pub use registry::ChannelState;
pub use registry::ConnectionId;
pub use registry::ModuleRegistration;
pub use registry::Registry;
pub use registry::RegistryError;
pub use router::Backend;
pub use router::EchoBackend;
pub use router::ForwardBackend;
pub use router::FrameSink;
pub use router::RouteCtx;
pub use router::Router;
pub use router::RouterConnection;
pub use router::RouterError;
pub use server::handle_connection;
pub use server::serve_listener;
pub use server::serve_listeners;
pub use server::ConnectionError;
pub use server::ServerAuth;
pub use server::ServerError;
pub use server::DEFAULT_AUTH_DEADLINE;
pub use server::DEFAULT_MAX_UNAUTHENTICATED_CONNECTIONS;
pub use supervise::ExitKind;
pub use supervise::ExitReport;
pub use supervise::HealthAction;
pub use supervise::HealthConfig;
pub use supervise::ModuleHealthStatus;
pub use supervise::ModuleOverlap;
pub use supervise::ModuleProcessLiveness;
pub use supervise::ModuleSpec;
pub use supervise::ModuleState;
pub use supervise::ModuleStatus;
pub use supervise::RestartPolicy;
pub use supervise::SuperviseError;
pub use supervise::SupervisedModule;
pub use supervise::Supervisor;
pub use supervise::SupervisorHandle;
pub use supervise::SupervisorProcessLiveness;
pub use supervise::SwapFailureArm;
pub use supervise::SwapRefusal;
pub use supervise::DEFAULT_DRAIN_TIMEOUT;
pub use supervise::DEFAULT_SWAP_READY_TIMEOUT;
pub use supervise::SPAWN_ROLE_SWAP_CANDIDATE;
pub use supervise::SUBC_ARG;
pub use supervise::SUBC_SPAWN_ROLE_ENV;
pub use watchdog::DaemonSelfWatchdog;
pub use watchdog::DaemonSelfWatchdogConfig;
pub use watchdog::WatchdogStage;
pub use watchdog::WatchdogTickError;
pub use watchdog::DEFAULT_SELF_WATCHDOG_DEADLINE;
pub use watchdog::DEFAULT_SELF_WATCHDOG_INTERVAL;

Modules§

bootstrap
control
daemon_config
fleet_lint
Offline capability-manifest evaluation for ck daemon lint.
forwarding
identity
machine_id
The machine id file: where the daemon’s MachineId lives on disk, how the daemon mints it once, and how an operator replaces it.
observability
registry
router
server
stderr_tail
Bounded per-module stderr capture.
supervise
terminal_ring
watchdog

Structs§

Frame
A complete wire frame: the decoded envelope header plus its opaque body.
ProjectRootId
Stable canonical identity for a project root.

Enums§

FrameBuildError
Why a frame could not be constructed or emitted coherently.
FrameIoError
Errors from async envelope frame I/O.
IdentityError
Typed identity-resolution failures.
ReadStage
Which part of a frame was being read when EOF arrived.

Functions§

read_frame
Read one complete frame from an async stream.
write_frame
Write one complete frame to an async stream.