1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//! 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.
pub use ;
pub use ;
pub use ;
pub use ;
pub use ImageRef;
pub use Overlay;
pub use ;