lightshuttle_spec/lib.rs
1//! Manifest to container specification resolution for LightShuttle.
2//!
3//! This crate is the single source of truth that turns a typed
4//! `lightshuttle-manifest` resource declaration into a self-contained
5//! [`ContainerSpec`], applying the v0 defaults (image expansion,
6//! database name derivation, random password generation, healthcheck
7//! materialisation) and computing the [`ResourceOutputs`] a resource
8//! exposes to its dependents.
9//!
10//! The resolution is intentionally free of any container daemon
11//! dependency, so both the runtime and the export pipeline can consume
12//! it without drift.
13
14mod error;
15mod spec;
16
17pub use crate::error::{Result, SpecError};
18pub use crate::spec::{
19 ContainerSpec, HealthcheckSpec, ImageSource, PortBinding, ResolvedResource, ResourceOutputs,
20 VolumeBinding, VolumeSource, from_resource,
21};