loom-deploy · spec
Source declarations, signatures and documentation for spec.
Source: sigil/weave/tools/loom-deploy/src/spec.rs. SHA-256: afa0f02e5e8cf377fd1e698150e8b2126a10edac8aef2f888f68dd40f50238e0.
This reference follows declared source modules, retains conditional attributes, and includes public declarations and implementation methods. Private-module re-exports and trait resolution require the compiler; this is a source reference, not a claim that every listed item is a root import. Function bodies and constant values are omitted.
spec::Runtime
What runtime ARISE should provision.
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum Runtime {
/// WASI/Wasmtime. Best for stateless services.
Wasm,
/// OCI container.
Docker,
/// Firecracker microVM. Best for stateful workloads.
Firecracker,
}Source line: 11.
spec::NetworkMode
Network exposure mode.
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum NetworkMode {
/// Default — bridge to a private subnet.
Bridge,
/// Share the host network.
Host,
/// Air-gapped.
None,
}Source line: 23.
spec::ResourceSpec
Hardware resources requested.
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct ResourceSpec {
/// CPU cores requested. Floats allowed for fractional cores in v2.
pub cpu_cores: u32,
/// Memory in MB.
pub memory_mb: u64,
/// Disk in MB.
#[serde(default)]
pub disk_mb: u64
}Source line: 34.
spec::NetworkSpec
Network spec.
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct NetworkSpec {
/// Network mode.
#[serde(default = "default_mode")]
pub mode: NetworkMode,
/// Ports exposed to peers.
#[serde(default)]
pub exposed_ports: Vec<u16>
}Source line: 46.
spec::DeploySpec
The full deploy spec. Any unknown fields under [deploy.extra] flow
through unchanged into the marketplace request.
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct DeploySpec {
/// User-facing app name.
pub name: String,
/// Path to the entrypoint relative to the repo root.
pub entrypoint: String,
/// Runtime.
pub runtime: Runtime,
/// Resource request.
pub resources: ResourceSpec,
/// Network spec.
#[serde(default)]
pub network: NetworkSpec,
/// Env vars.
#[serde(default)]
pub env: std::collections::BTreeMap<String, String>,
/// Free-form fields the marketplace consumes.
#[serde(default)]
pub extra: serde_json::Value
}Source line: 71.
spec::DeployError
Errors raised parsing the spec.
#[derive(Debug, Error)]
pub enum DeployError {
/// The file doesn't exist.
#[error("loom.toml not found at {0}")]
Missing(String),
/// IO error reading the file.
#[error("io reading {0}: {1}")]
Io(String, std::io::Error),
/// TOML parse error.
#[error("parse {0}: {1}")]
Parse(String, toml::de::Error),
/// Required `[deploy]` section absent.
#[error("loom.toml is missing a `[deploy]` section")]
NoDeploySection,
}Source line: 93.
spec::parse
Parse a loom.toml file path.
pub fn parse(path: &Path) -> Result<DeploySpec, DeployError>;Source line: 114.