karapace/crates/karapace-core/src/lib.rs

41 lines
1.5 KiB
Rust
Raw Normal View History

//! Core orchestration engine for Karapace environment lifecycle.
//!
//! This crate ties together schema parsing, store operations, and runtime backends
//! into the `Engine` — the central API for building, entering, stopping, destroying,
//! and inspecting deterministic container environments. It also provides overlay
//! drift detection, concurrent store locking, and state-machine lifecycle validation.
pub mod concurrency;
pub mod drift;
pub mod engine;
pub mod lifecycle;
pub use concurrency::{install_signal_handler, shutdown_requested, StoreLock};
pub use drift::{commit_overlay, diff_overlay, export_overlay, DriftReport};
pub use engine::{BuildResult, Engine};
pub use lifecycle::validate_transition;
use thiserror::Error;
#[derive(Debug, Error)]
pub enum CoreError {
#[error("manifest error: {0}")]
Manifest(#[from] karapace_schema::ManifestError),
#[error("lock error: {0}")]
Lock(#[from] karapace_schema::LockError),
#[error("store error: {0}")]
Store(#[from] karapace_store::StoreError),
#[error("runtime error: {0}")]
Runtime(#[from] karapace_runtime::RuntimeError),
#[error("invalid state transition: {from} -> {to}")]
InvalidTransition { from: String, to: String },
#[error("environment not found: {0}")]
EnvNotFound(String),
#[error("I/O error: {0}")]
Io(#[from] std::io::Error),
#[error("serialization error: {0}")]
Serialization(#[from] serde_json::Error),
#[error("remote error: {0}")]
Remote(#[from] karapace_remote::RemoteError),
}