hadris/lib.rs
1//! # Hadris
2//!
3//! A unified package for working with filesystem and disk image formats.
4//!
5//! This meta-crate re-exports the individual hadris crates, providing
6//! a single dependency for accessing all supported formats:
7//!
8//! - **`iso`** — ISO 9660 with Joliet, Rock Ridge, and El-Torito boot support
9//! - **`fat`** — FAT12/16/32 with long filenames and optional caching
10//! - **`udf`** — Universal Disk Format (UDF) 1.02–2.60
11//! - **`cpio`** — CPIO newc/CRC archive format
12//!
13//! ## Feature Flags
14//!
15//! | Feature | Default | Description |
16//! |-----------|---------|-------------|
17//! | `iso9660` | Yes | ISO 9660 filesystem support |
18//! | `fat` | Yes | FAT12/16/32 filesystem support |
19//! | `cpio` | Yes | CPIO archive support |
20//! | `udf` | No | UDF filesystem support |
21//! | `sync` | No | Synchronous API for all enabled formats |
22//! | `async` | No | Asynchronous API for all enabled formats |
23//!
24//! ## Quick Start
25//!
26//! ```rust,no_run
27//! // Read an ISO image
28//! use hadris::iso::sync::IsoImage;
29//! let file = std::fs::File::open("image.iso").unwrap();
30//! let iso = IsoImage::open(file).unwrap();
31//! let pvd = iso.read_pvd();
32//! println!("Volume: {}", pvd.volume_identifier);
33//! ```
34
35#[cfg(feature = "iso9660")]
36pub use hadris_iso as iso;
37
38#[cfg(feature = "fat")]
39pub use hadris_fat as fat;
40
41#[cfg(feature = "udf")]
42pub use hadris_udf as udf;
43
44#[cfg(feature = "cpio")]
45pub use hadris_cpio as cpio;