hadris-udf
A Rust implementation of the UDF (Universal Disk Format) filesystem.
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;
format.expect;
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