Skip to main content

arc_mac/
lib.rs

1//! Native readers for classic Macintosh archive formats.
2//!
3//! These archives are trees of Mac files, each preserving a data fork, a
4//! resource fork, and Finder info (type/creator/flags). The reader exposes
5//! entries that map cleanly onto the rest of rusty-backup's fork-aware tooling
6//! (BinHex export, MacBinary, HFS import).
7//!
8//! - [`stuffit`] — classic StuffIt (`.sit`, `SIT!` magic) and StuffIt
9//!   self-extracting archives (`.sea`).
10//! - [`compactpro`] — Compact Pro (`.cpt`, and `.sea` self-extracting),
11//!   commonly distributed BinHex-wrapped.
12//! - [`mar`] — Hampa Hug's `mar` archive (`.mar`): a single Mac file or folder
13//!   tree, read + written (stored).
14//!
15//! See `docs/native_mac_archives.md` in rusty-backup for the format references and roadmap.
16//!
17//! Licensing is per file (each starts with an SPDX line): the StuffIt / Compact Pro
18//! decompressors and parsers ported from XADMaster are LGPL-2.1-or-later, everything else is
19//! MIT. See `THIRD_PARTY_NOTICES.md`.
20
21// `is_multiple_of` & co. come from disk-core's rust173 polyfill on 1.73; the real floor check is a 1.73 build.
22#![allow(clippy::incompatible_msrv)]
23
24pub mod bitreader_be;
25pub mod compactpro;
26pub mod detect;
27pub mod extract;
28pub mod macbinary;
29pub mod maczip;
30pub mod mar;
31pub mod shrinkwrap;
32pub mod stuffit;
33pub mod stuffit13_tables;
34pub mod stuffit5;
35pub mod stuffit_arsenic;
36pub mod stuffit_huffman;
37pub mod stuffit_lzah;
38pub mod stuffit_lzh;
39pub mod stuffit_lzw;