hadris-block 2.0.0

Rust block-storage facade for devices, sectors, partitions, and FAT filesystems
Documentation

hadris-block

hadris-block is the block-storage facade for Hadris. It groups storage-device traits, MBR/GPT partition tables, FAT12/16/32, non-destructive format detection, checked partition views, and unified filesystem opening without erasing the concrete leaf-crate APIs.

Use the facade when an application needs several block-storage layers. Use hadris-fat, hadris-part, or hadris-storage directly when only one layer is needed.

[dependencies]
hadris-block = "2.0.0"
use hadris_block::detect::{BlockFormat, FatVariant, detect_sector};

let mut sector = [0u8; 512];
// Fill `sector` from a disk or image.
let detected = detect_sector(&sector);
if let Some(BlockFormat::Fat(FatVariant::Fat32)) = detected {
    // Open through hadris_block::sync::OpenVolume or hadris_block::fat.
}

Detection restores stream positions and examines only identifying metadata. Opening the detected concrete format performs full validation. Partitioned disks must first be narrowed with the checked partition-view APIs.

Features

Feature Default Purpose
std yes Hosted support; enables alloc
alloc yes Heap-backed APIs without requiring std
sync yes Synchronous I/O APIs
async no Asynchronous I/O APIs
read yes Filesystem and partition reading
write yes FAT and partition mutation
detect yes Lightweight block-format detection
storage yes Re-export hadris-storage
fat yes Re-export hadris-fat with LFN support
part yes Re-export hadris-part

The stable unified opener handles FAT12/16/32. exFAT remains an unstable leaf-crate preview and is detected but not opened by this facade. Experimental NTFS support likewise remains in the separate hadris-ntfs crate.

For no_std targets, disable default features and select one I/O mode explicitly.