On Tue, Feb 24, 2026 at 8:14 AM AYUSH YADAV <[email protected]>
wrote:
> Dear libcdio Development Team,
>
> I hope this email finds you well.
>
> I am an undergraduate student at IIT Jammu, with a keen interest in systems
> programming and open-source development. I recently came across the
> proposed project idea of porting components of libcdio (such as the
> libiso9660 or cd-paranoia parts) to Rust and am very interested in
> contributing to this project under GSoC.
>
> I have experience with Linux systems and low-level programming ideas, and I
> am particularly interested in Rust for its safety properties and modern
> systems design philosophy.
>
> I would greatly appreciate:
>
> - Which component would be most impactful or easiest to start with?
>
The ISO 9660 filesystem library, libiso9660, is self-contained, and some
parts of it do not need to interact with hardware devices, but instead can
work from a file in a filesystem.
- Are there existing design notes or system design considerations for a
> Rust port?
>
The only thing I can think of is that in the handling of arbitrarily
repeating structures. In C, we declare a zero-size array and malloc the
appropriate fixed-array size based on the value of some length field.
As an example of this:
struct iso9660_stat_s { /* big endian!! */
...
/* Multi-extent aware size, in bytes.
It is guaranteed that the bytes are stored as a gapless string in a
contiguous sequence of blocks. I.e. they can be read sequentially
starting at iso9660_stat_s.lsn.
Data files that do not fulfil this promise cause a warning message
and are not represented by this type of struct.
(Directories are not allowed to have more than one extent and thus
cannot
legally break the promise.)
*/
uint64_t total_size;
....
char filename[EMPTY_ARRAY_SIZE]; /**< filename */
};
- Any suggested issues or "starter tasks" that I could look into to get a
> better feel for the codebase?
>
These are pretty obvious, but I'll say it anyway. Git clone the project
from GitHub, look over the code, compile, and run it. Build the
documentation, including the doxygen documentation and look over that,
especially the libraries.
> I look forward to contributing to the project immediately and would be
> grateful for any advice on how best to integrate my work with the project's
>
The usual practices of putting in pull requests on GitHub apply. Make a new
named branch with your changes in the branch, rather than committing from a
fork of master. Write unit tests;
possibly the existing unit tests can assist here.
Good luck!
>
> Best regards,
> Ayush Yadav
> https://github.com/acidicneko
>