iso9660

ISO 9660 / ECMA-119 optical-disc filesystem (.iso images), with Rock Ridge.
Implements filesystem.Filesystem. No cgo, no root.
Status
| Read | Write | Format | Label | Symlinks | On-disk format |
|---|---|---|---|---|---|
| ✅ | ✕ | ✕ | — | ✅ | ISO 9660 / ECMA-119 + Rock Ridge (names/perms/symlinks) + Joliet (UCS-2 names) |
Supported
- Primary Volume Descriptor scan (
CD001), logical block size, root record - Directory-record parsing + per-sector padding-aware directory walk
- Contiguous single-extent file reads (multi-sector)
- Rock Ridge (
SP/NM/PX/SL): real case-preserved long names, POSIX modes, symlink targets (ReadLink), andCEcontinuation areas - Joliet (UCS-2 long names via the supplementary volume descriptor), used when Rock Ridge is absent
- Path resolution by real (Rock Ridge / Joliet) name, with a case-insensitive fallback for base ISO names
Not implemented
- Write/format — ISO 9660 is a read-only format; mutators return
ErrReadOnly - Rock Ridge deep-directory relocation (
CL/PL/RE) - Multi-extent files
Install
go get github.com/go-filesystems/iso9660
- Source: https://github.com/go-filesystems/iso9660
- API reference: https://pkg.go.dev/github.com/go-filesystems/iso9660
Note
See the module's README for full, up-to-date details.