A Go library for reading and creating ISO9660 disk images with experimental Rock Ridge support.
iso9660 is a Go library that enables reading and creating ISO9660 disk images, the standard filesystem format used for CD-ROMs and optical media. It solves the problem of programmatically working with ISO images without relying on external tools or system commands. The library provides both extraction capabilities for existing images and creation utilities for building new ISO files from local data.
Go developers who need to work with optical disc images programmatically, including those building tools for system administration, software distribution, or media management applications.
Developers choose iso9660 because it provides a pure Go implementation with no external dependencies, offers both read and write capabilities in a single package, and follows idiomatic Go conventions while maintaining strict compliance with the ISO9660 standard specifications.
A go library for reading and creating ISO9660 images
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The library is written entirely in Go with no external dependencies, making it easy to integrate into Go projects without relying on system tools like genisoimage.
It provides full functionality for both extracting content from existing ISO images using util.ExtractImageToDirectory and creating new ones programmatically with iso9660.Writer, as shown in the examples.
Focuses on a clean API that follows Go conventions, such as using defer for cleanup and providing utility functions for common tasks like recursive directory building.
Allows creating ISO images from entire directory structures with path manipulation, demonstrated in the recursive example using filepath.Walk and writer.AddFile.
The README explicitly states that Joliet extensions are not supported, which limits compatibility with Windows systems that rely on longer file names and Unicode characters.
Rock Ridge support is only experimental for reading, and users are advised to use v0.3 to avoid issues, indicating instability and incomplete feature implementation.
Creating ISO images requires manual file handling, multiple steps, and careful error management, as seen in the examples, which can be cumbersome for complex or large datasets.