libcdio_rs/lib.rs
1// Copyright (C) 2026 Shiva Kiran Koninty <shiva@skran.xyz>
2//
3// This file is part of libcdio-rs.
4//
5// libcdio-rs is free software: you can redistribute it and/or
6// modify it under the terms of the GNU General Public License as
7// published by the Free Software Foundation, either version 3 of the
8// License, or (at your option) any later version.
9//
10// libcdio-rs is distributed in the hope that it will be useful,
11// but WITHOUT ANY WARRANTY; without even the implied warranty of
12// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13// General Public License for more details.
14//
15// You should have received a copy of the GNU General Public License
16// along with libcdio-rs. If not, see <https://www.gnu.org/licenses/>.
17
18//! # libcdio-rs
19//! Safe wrapper and Rust port of [GNU libcdio][libcdio-site].
20//!
21//! ## SCSI MMC references
22//! This library implements SCSI routines primarily based on
23//! [MMC-6 rev.2g][mmc6r2g] and [SPC-3 rev.23][spc3r23].
24//!
25//! ## Changelog
26//! See [CHANGELOG.md][changelog]
27//!
28//! [libcdio-site]: https://libcdio.github.io
29//! [mmc6r2g]: https://www.13thmonkey.org/documentation/SCSI/mmc6r02g.pdf
30//! [spc3r23]: https://www.13thmonkey.org/documentation/SCSI/spc3r23.pdf
31//! [changelog]: https://github.com/libcdio/libcdio-rs/tree/main/CHANGELOG.md
32
33#![cfg_attr(docsrs, feature(doc_cfg))]
34
35mod cdio;
36pub mod drive;
37
38#[cfg(feature = "iso9660")]
39pub mod iso9660;
40
41mod logging;
42
43#[cfg(feature = "mmc")]
44pub mod mmc;
45
46#[cfg(feature = "udf")]
47pub mod udf;
48
49#[doc(inline)]
50pub use crate::drive::Drive;
51
52#[cfg(feature = "iso9660")]
53#[doc(inline)]
54pub use crate::iso9660::Iso;
55
56#[cfg(feature = "udf")]
57#[doc(inline)]
58pub use crate::udf::Udf;
59
60#[cfg(feature = "mmc")]
61#[doc(inline)]
62pub use mmc::Mmc;
63
64#[cfg(any(feature = "iso9660", feature = "udf"))]
65pub use {file_mode, time};