hadris-udf
A pure Rust Universal Disk Format (UDF) filesystem library for optical media
and disk images, with std and no_std support. It is suitable for desktop
image tools, bootloaders, kernels, firmware, and embedded systems.
UDF (ECMA-167) is the filesystem used for DVD-ROM, DVD-Video, DVD-RAM, Blu-ray discs, large USB drives (files >4GB), and packet writing to CD/DVD-RW.
Features
- Read UDF 1.02 images (DVD-ROM)
- Write/format UDF filesystems from scratch
- no_std compatible (with
alloc) - Descriptor-level access for building hybrid images
Quick Start
use File;
use BufReader;
use UdfFs;
let file = open.unwrap;
let reader = new;
let udf = open.unwrap;
let info = udf.info;
println!;
for entry in udf.root_dir.unwrap.entries
Writing a UDF image
use ;
use Cursor;
let mut buffer = vec!;
let mut cursor = new;
let mut root = new;
root.add_file;
let options = default;
let output = create.expect;
let _cursor = output.into_inner;
Feature Flags
| Feature | Default | Description |
|---|---|---|
read |
Yes | Read support |
alloc |
No | Heap allocation without full std |
std |
Yes | Full standard library support |
write |
No | Write/format support (requires std) |
Supported UDF Revisions
| Revision | Use case | Status |
|---|---|---|
| UDF 1.02 | DVD-ROM | Supported |
| UDF 1.50 | DVD-RAM, packet writing | Planned |
| UDF 2.01 | DVD-RW, streaming | Planned |
| UDF 2.50 | Blu-ray | Planned |
Specifications
- ECMA-167: Volume and File Structure for Write-Once and Rewritable Media
- OSTA UDF Specification (udf260.pdf)
License
MIT