oci-image 0.1.3

OCI container images on disk: image references, sha256 digests, one-pass layer unpack (whiteouts and opaque directories), gzip (all cores via lgz one-pass streaming decode; small layers on one core) and zstd layers, a content-addressed store of blobs and per-layer directories in overlayfs format (each layer unpacked once, shared between images, refcounted, collected), overlay snapshot prep, and an optional anonymous registry pull.
Documentation
//! OCI container images on disk.
//!
//! - [`ImageRef`] and [`Digest`]: references with Docker's defaults, strict
//!   `sha256:` digests that are safe as file names.
//! - [`apply_layer_file`] / [`apply_layer`]: one-pass layer unpack with OCI
//!   whiteout and opaque-directory rules, a decoder thread ahead of the tar
//!   reader and a pool of file writers. Every write is relative to a
//!   directory descriptor resolved beneath the rootfs (`openat2`
//!   `RESOLVE_BENEATH`, or an `O_NOFOLLOW` walk): nothing lands outside it,
//!   whatever the layer holds or another process changes meanwhile. Gzip layers decode on all the
//!   caller's threads with [`lgz`]'s one-pass streaming decoder (any gzip,
//!   no flush points needed; small layers on one core with zlib-rs, by lgz's
//!   own threshold); zstd layers with libzstd.
//! - [`changes`] and [`decoder`]: the same whiteout rules as events over an
//!   in-memory blob, for scanners that keep their own view of the files.
//! - [`LayerStore`]: verified blobs by digest and one flattened rootfs per
//!   layer chain.
//! - [`Overlay`]: upper/work/merged directories and overlayfs mount data for
//!   a container on top of a rootfs.
//! - `pull` (feature `pull`): anonymous registry pull into the store.

mod beneath;
mod decode;
mod digest;
mod error;
mod layer;
#[cfg(feature = "pull")]
pub mod pull;
mod reference;
mod snapshot;
mod store;

pub use decode::{decoder, Compression, Decoder};
pub use digest::{Digest, Hasher};
pub use error::{Error, Result};
pub use layer::{
    apply_layer, apply_layer_file, apply_layer_file_digest, changes, entry_path, Change, Layout, OverlayXattr,
    UnpackOptions, UnpackStats, IN_FLIGHT, OPEN_FILES, SMALL_FILE,
};
pub use reference::ImageRef;
pub use snapshot::Overlay;
pub use store::{chain_id, BlobWriter, GcStats, ImageLayer, LayerStore};