#iso9660 #cd #dvd #iso #el-torito

hadris-iso

A rust implementation of the ISO-9660 filesystem

1 unstable release

Uses new Rust 2024

0.0.1 Mar 20, 2025

#8 in #dvd

Download history 122/week @ 2025-03-19

122 downloads per month
Used in hadris

MIT license

90KB
2.5K SLoC

ISO-RS (iso9660-rs)

A rust implementation of the ISO-9660 filesystem. Currently there are a few limitations:

  • Only supports spec compliant filesystems, and no extensions.
  • Sector size has to be 2KiB (2048 bytes), this is the common size, and should be supported by most filesystems.

This project also contains the specification for the ISO-9660 filesystem, which is a work in progress.

Current Progress

  • Parsing of the ISO-9660 filesystem
    • Parsing of the primary volume descriptor
    • Parsing of the volume descriptor list
    • Parsing of the path table
    • Parsing of the root directory
    • Parsing of the directory records
  • Writing of the ISO-9660 filesystem
    • Basic support for writing ISO-9660 filesystems (only to the root directory, but arbituary size)
    • Support for writing to root directory bigger than 1 sector
    • Support for writing to the path table
    • Support for writing directories
    • Support for writing files in non-root directories
  • Support for El Torito booting
    • Support for parsing El Torito Boot Records
    • Support for loading Boot files
  • Testing
    • Tests for reading basic structures
    • Tests for writing basic structures
    • Tests for reading and writing to the root directory
    • Tests for writing to the path table
    • Tests for writing directories
    • Tests for writing files in non-root directories

Other future goals: Improve API to allow for more flexibility from users

Dependencies

~3–12MB
~167K SLoC