Skip to main content

Crate hadris

Crate hadris 

Source
Expand description

§Hadris

The Rust storage stack.

Hadris is a pure Rust toolkit for block devices, partition tables, filesystems, archives, and disk images. Its feature model supports desktop applications and no_std bootloaders, kernels, firmware, and embedded systems.

The umbrella crate groups the individual libraries by storage access model:

  • block — block filesystems and partition tables
  • optical — optical filesystems and disc image composition
  • archive — sequential archive formats
  • path — lexical virtual-path parsing and normalization
  • fixed — fixed-capacity byte and text types

§Feature flags

Leaf features (storage, fat, part, iso, udf, cd, and cpio) enable one library at a time. The block, optical, and archive features enable all libraries in their respective category. Platform (std, alloc), I/O mode (sync, async), and capability (read, write) features are forwarded independently to enabled leaves. The default set is the hosted synchronous read/write configuration with fat, iso, and cpio.

Hybrid CD image creation is currently sync-only. Enabling cd—directly or through optical—therefore enables the CD writer’s sync API, even when the umbrella async feature is also selected. ISO and UDF still expose their async modules in that configuration.

§Quick start

use hadris::optical::iso::sync::IsoImage;

let file = std::fs::File::open("image.iso").unwrap();
let iso = IsoImage::open(file).unwrap();
let pvd = iso.read_pvd().unwrap();
println!("Volume: {}", pvd.volume_identifier);

Re-exports§

pub use hadris_block as block;
pub use hadris_optical as optical;
pub use hadris_archive as archive;
pub use hadris_path as path;
pub use hadris_fixed as fixed;