lamfold-iso 0.1.0

no_std clean-room ISO9660 (+Rock Ridge/Joliet/El Torito) reader — the lamfold optical frontend
Documentation
# lamfold-iso

> The optical frontend of the [`lamfold`]../lamfold read-only media stack —
> clean-room ISO9660 (+ Rock Ridge / Joliet / El Torito / zisofs).

Reads over a `lamfold::BlockSource` and implements `lamfold::FoldFrontend`, so it
composes through LamBoot's `dispatch_fs_over_source` — including recursively over
a file inside another volume (an `.iso` inside a partition). Supersedes the
earlier `lamoptical` scaffold. Spec: `the lamfold design spec` §4.

## Status — optical frontend

| Layer | State |
| ----- | ----- |
| **ISO9660 / ECMA-119 base** — PVD, directory records, file extents, multi-sector reads | ✅ done + tested |
| **Rock Ridge** (SUSP/RRIP — real names, symlinks via `read_link`, POSIX mode) | ✅ done + tested |
| **Joliet** (UCS-2 supplementary descriptor; RR > Joliet > base preference) | ✅ done + tested |
| **El Torito** (boot catalog → `el_torito_uefi_image()` side-channel) | ✅ done + tested |
| **zisofs** (transparent paged-zlib via the substrate codec) | ✅ done + tested (`zisofs` feature) |
| Rock Ridge `CE` continuation / `CL`/`PL`/`RE` deep-dir relocation; multi-extent files | ⏳ future |

**Complete.** Verified against **real** `xorriso`-generated images (plain
ISO9660, `-R`, `-J`, `-e` UEFI El Torito, `--zisofs`): probe, tree walks, real
names, symlinks, the UEFI boot image, UCS-2 long names, and transparent zisofs
decompression. Builds default + `--no-default-features` (with and without
`zisofs`), `no_std`. `#![forbid(unsafe_code)]` — every on-disk field read through
bounds-checked little-endian helpers; every allocation through the substrate read
cap; decompression through the shared substrate codec.

## Clean-room posture

Derived only from ECMA-119 / IEEE P1281+P1282 / El Torito specs and the permissive
references in `NOTICE`. The GPL implementations (libcdio, Linux `fs/isofs`) are
fenced off — references and test oracles only, never copied.

## Build / test

```bash
cargo build
cargo test                                   # walks tests/fixtures/base.iso
cargo build --no-default-features            # no_std check
```

MIT OR Apache-2.0.