How hxyulin/hadris works
Hadris is a Rust storage and filesystem library ecosystem, not a single filesystem pipeline. An application can start with the umbrella or a category/format crate, then detect or open a supported format and read, create, or modify its representation over shared I/O and storage abstractions. The workspace also provides command-line tools for inspecting and authoring several formats. The README documents the broad capabilities and facade relationships; sampled source confirms representative CLI dispatch and ISO/UDF writer behavior, but not every facade’s internal wiring.
Main entry points: src/lib.rs ISO 9660 · src/lib.rs Block facade · src/lib.rs FAT / exFAT · src/lib.rs UDF
Components 20
Shared foundations
- Umbrella API
crates/core/hadris/src/lib.rs - Portable I/O
crates/core/hadris-io/src/lib.rs - Storage abstractions
crates/core/hadris-storage/src/lib.rs - Path utilities
crates/core/hadris-path/src/lib.rs
Block storage
- Block facade
crates/block/hadris-block/src/lib.rs - Partition tables
crates/block/hadris-part/src/lib.rs - FAT / exFAT
crates/block/hadris-fat/src/lib.rs - NTFS reader
crates/block/hadris-ntfs/src/lib.rs
Optical media
- Optical facade
crates/optical/hadris-optical/src/lib.rs - ISO 9660
crates/optical/hadris-iso/src/lib.rs - UDF
crates/optical/hadris-udf/src/lib.rs - Hybrid disc writer
crates/optical/hadris-cd/src/lib.rs
Archives
- Archive facade
crates/archive/hadris-archive/src/lib.rs - CPIO newc
crates/archive/hadris-cpio/src/lib.rs
Command-line tools
- FAT utility
crates/tools/hadris-fat-cli/src/app.rs - ISO utility
crates/tools/hadris-iso-cli/src/app.rs - UDF utility
crates/tools/hadris-udf-cli/src/app.rs - CD utility
crates/tools/hadris-cd-cli/src/main.rs - CPIO utility
crates/tools/hadris-cpio-cli/src/app.rs
Other components
- Application
Connections 30
- Application → Umbrella API: uses optionally
- Application → Block facade: uses optionally
- Application → Optical facade: uses optionally
- Application → Archive facade: uses optionally
- Application → FAT / exFAT: uses directly
- Application → ISO 9660: uses directly
- Umbrella API → Block facade: re-exports
- Umbrella API → Optical facade: re-exports
- Umbrella API → Archive facade: re-exports
- Block facade → Partition tables: opens partitions
- Block facade → FAT / exFAT: opens FAT
- Optical facade → ISO 9660: detects / opens
- Optical facade → UDF: detects / opens
- Hybrid disc writer → ISO 9660: composes ISO
- Hybrid disc writer → UDF: composes UDF
- Archive facade → CPIO newc: provides format
- FAT utility → FAT / exFAT: reads / writes
- ISO utility → ISO 9660: reads / writes
- UDF utility → UDF: reads / writes
- CD utility → Hybrid disc writer: creates images
- CD utility → ISO 9660: inspects ISO
- CD utility → UDF: inspects UDF
- CPIO utility → CPIO newc: reads / writes
- FAT / exFAT → Portable I/O: uses I/O traits
- ISO 9660 → Portable I/O: uses I/O traits
- UDF → Portable I/O: uses I/O traits
- CPIO newc → Portable I/O: uses I/O traits
- Block facade → Storage abstractions: uses storage APIs
- FAT / exFAT → Storage abstractions: uses storage APIs
- ISO 9660 → Path utilities: uses path utilities