This is a WIP Rust port of the CLI utilities provided by libcdio. Also includes libcdio-rs, which provides safe Rust abstractions over libcdio.
- cd-drive: show CD-ROM drive characteristics
- cd-info: show information about a CD or CD-image
- cd-paranoia: an audio CD ripper
- cd-read: read information from a CD or CD-image
- cdda-player: a simple curses-based audio CD player
- iso-info: show information about an ISO 9660 image
- iso-read: read portions of an ISO 9660 image
- mmc-tool: issue low-level commands to a CD drive
- Cargo: The Rust build tool
- libclang:
Used by
libcdio-sysfor generating Rust bindings to libcdio - libcdio: Consult your package manager
cargo build --releaseOmit --release for debug builds.
The build outputs should be in the target directory.
cargo testTo run ignored tests, which require some extra setup:
cargo test -- --include-ignoredThese automatically perform lint and formatting checks:
git config core.hooksPath .githooksTo skip hooks, use --no-verify:
git commit --no-verifyBuild libcdio with the --without-versioned-libs option.
cd libcdio
autoreconf -f -i
./configure --without-versioned-libs
makeSet the following environment variables:
# Set this to the (absolute!) path of your libcdio build directory
export LIBCDIO_ROOT="/home/skran/libcdio"
export SYSTEM_DEPS_LIBCDIO_NO_PKG_CONFIG="yes"
export SYSTEM_DEPS_LIBCDIO_SEARCH_NATIVE="$LIBCDIO_ROOT/lib/driver/.libs"
export SYSTEM_DEPS_LIBCDIO_INCLUDE="$LIBCDIO_ROOT/include"
export SYSTEM_DEPS_LIBCDIO_LIB="cdio"
export SYSTEM_DEPS_LIBISO9660_NO_PKG_CONFIG="yes"
export SYSTEM_DEPS_LIBISO9660_SEARCH_NATIVE="$LIBCDIO_ROOT/lib/iso9660/.libs"
export SYSTEM_DEPS_LIBISO9660_INCLUDE="$LIBCDIO_ROOT/include"
export SYSTEM_DEPS_LIBISO9660_LIB="iso9660"
export BINDGEN_EXTRA_CLANG_ARGS="-I$LIBCDIO_ROOT/include"
export LD_LIBRARY_PATH="$LIBCDIO_ROOT/lib/driver/.libs:$LIBCDIO_ROOT/lib/iso9660/.libs:$LD_LIBRARY_PATH"
# For macOS
export LD_LIBRARY_PATH="$LIBCDIO_ROOT/lib/driver/.libs:$LIBCDIO_ROOT/lib/iso9660/.libs:$DYLD_LIBRARY_PATH"That's it. Cargo should now use your local copy of libcdio.
Copyright (C) 2026 Shiva Kiran Koninty shiva@skran.xyz
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.