mirror of
https://github.com/marcoallegretti/karapace.git
synced 2026-03-26 21:43:09 +00:00
- TOML manifest parsing with strict schema validation (deny_unknown_fields) - Deterministic normalization: sorted packages, deduplication, canonical JSON - Two-phase identity: preliminary (from manifest) and canonical (from lock) - Lock file v2: resolved packages with pinned versions, base image content digest - Dual lock verification: integrity (hash) and manifest intent (drift detection) - Built-in presets: dev, dev-rust, dev-python, gui-app, gaming, minimal - Blake3 256-bit hashing throughout
23 lines
991 B
Rust
23 lines
991 B
Rust
//! Manifest parsing, normalization, lock files, and environment identity for Karapace.
|
|
//!
|
|
//! This crate defines the schema layer: TOML manifest parsing (`ManifestV1`),
|
|
//! normalized representations (`NormalizedManifest`), deterministic environment
|
|
//! identity computation (`compute_env_id`), lock file generation/verification
|
|
//! (`LockFile`), and built-in preset definitions.
|
|
|
|
pub mod identity;
|
|
pub mod lock;
|
|
pub mod manifest;
|
|
pub mod normalize;
|
|
pub mod preset;
|
|
pub mod types;
|
|
|
|
pub use identity::{compute_env_id, EnvIdentity};
|
|
pub use lock::{LockError, LockFile, ResolutionResult, ResolvedPackage};
|
|
pub use manifest::{
|
|
parse_manifest_file, parse_manifest_str, BaseSection, GuiSection, HardwareSection,
|
|
ManifestError, ManifestV1, MountsSection, ResourceLimits, RuntimeSection, SystemSection,
|
|
};
|
|
pub use normalize::{NormalizedManifest, NormalizedMount};
|
|
pub use preset::{get_preset, list_presets, Preset, BUILTIN_PRESETS};
|
|
pub use types::{EnvId, LayerHash, ObjectHash, ShortId};
|