bootc_lib/
lib.rs

1// The internals docs are built with --document-private-items, so allow
2// linking to private items from module documentation.
3#![allow(rustdoc::private_intra_doc_links)]
4
5//! # Bootable container tool
6//!
7//! This crate builds on top of ostree's container functionality
8//! to provide a fully "container native" tool for using
9//! bootable container images.
10//!
11//! For user-facing documentation, see <https://bootc-dev.github.io/bootc/>.
12//! For architecture and internals documentation, see the
13//! [Internals](https://bootc-dev.github.io/bootc/internals.html) section.
14//!
15//! # Crate Overview
16//!
17//! This is the core implementation library for bootc. The `bootc` binary
18//! (`crates/cli`) is a thin wrapper that delegates to [`cli::run_from_iter`].
19//!
20//! The API is internal and not stable for external consumption.
21//!
22//! # Module Index
23//!
24//! ## Core Functionality
25//!
26//! - [`cli`] - Command-line interface implementation (clap-based)
27//! - [`deploy`] - Deployment staging, rollback, and lifecycle management
28//! - [`store`] - Storage backend abstraction (OSTree and Composefs)
29//! - [`spec`] - Core types: [`spec::Host`], [`spec::HostSpec`], [`spec::BootEntry`]
30//! - [`install`] - System installation (`bootc install to-disk`)
31//! - [`status`] - Status reporting (`bootc status`)
32//!
33//! ## Container and Image Handling
34//!
35//! - [`image`] - Image operations and queries
36//! - [`boundimage`] - Logically Bound Images (LBIs)
37//! - [`podstorage`] - bootc-owned container storage (`/usr/lib/bootc/storage`)
38//! - [`podman`] - Podman command helpers
39//!
40//! ## Storage Backends
41//!
42//! - [`bootc_composefs`] - Composefs backend implementation (experimental)
43//! - The OSTree backend is implemented via `ostree-ext` and the [`store`] module
44//!
45//! ## Filesystem and Boot
46//!
47//! - [`bootloader`] - Bootloader configuration (GRUB, systemd-boot, UKI)
48//! - [`kernel`] - Kernel and initramfs handling
49//! - [`bootc_kargs`] - Kernel argument management
50//! - [`lsm`] - Linux Security Module (SELinux) integration
51//! - [`generator`] - Systemd generator for boot configuration
52//!
53//! ## Utilities
54//!
55//! - [`fsck`] - Filesystem consistency checks
56//! - [`lints`] - Container image linting
57//! - [`metadata`] - Image metadata extraction
58//!
59//! # Related Crates
60//!
61//! - [`ostree-ext`](../ostree_ext/index.html) - OCI/ostree bridging
62//! - [`bootc-mount`](../bootc_mount/index.html) - Mount utilities
63//! - [`bootc-kernel-cmdline`](../bootc_kernel_cmdline/index.html) - Cmdline parsing
64//! - [`etc-merge`](../etc_merge/index.html) - `/etc` three-way merge
65
66mod bootc_composefs;
67pub(crate) mod bootc_kargs;
68mod bootloader;
69mod boundimage;
70mod cfsctl;
71pub mod cli;
72mod composefs_consts;
73mod containerenv;
74pub(crate) mod deploy;
75mod discoverable_partition_specification;
76pub(crate) mod fsck;
77pub(crate) mod generator;
78mod glyph;
79mod image;
80mod install;
81pub(crate) mod journal;
82mod k8sapitypes;
83mod kernel;
84mod lints;
85mod lsm;
86pub(crate) mod metadata;
87mod parsers;
88mod podman;
89mod podstorage;
90mod progress_jsonl;
91mod reboot;
92pub mod spec;
93mod status;
94mod store;
95mod task;
96mod ukify;
97mod utils;
98
99#[cfg(feature = "docgen")]
100mod cli_json;
101
102#[cfg(feature = "rhsm")]
103mod rhsm;
104
105// Re-export blockdev crate for internal use
106pub(crate) use bootc_blockdev as blockdev;