Skip to main content

Crate amiga_lzx

Crate amiga_lzx 

Source
Expand description

Pure-Rust compressor and decompressor for the Amiga LZX archive format (the format produced by Jonathan Forbes’ LZX tool on Amiga, as distributed via Aminet). This is not Microsoft LZX (the variant used in .cab, .chm, .wim files); the two formats share an algorithmic family but have different wire formats, repeat-offset caches, and container layers. For MS-LZX, see crates such as lzxd.

The implementation is based on reverse-engineered specs in ALGORITHM.md and CONSTANTS.md at the workspace root, cross-verified against the canonical unlzx.c decompressor from Aminet.

Re-exports§

pub use crate::archive::writer::Level;
pub use crate::archive::ArchiveReader;
pub use crate::archive::ArchiveWriter;
pub use crate::archive::DateTime;
pub use crate::archive::Entry;
pub use crate::archive::EntryAttrs;
pub use crate::archive::EntryBuilder;
pub use crate::archive::EntryWriter;
pub use crate::error::Error;
pub use crate::error::Result;

Modules§

archive
Archive container format.
bitio
Bit-level I/O.
block
Block writer.
constants
Canonical LZX tables and magic numbers.
crc32
CRC32 (zlib / pkzip).
decoder
LZX stream decoder, ported from unlzx.c (read_literal_table, decrunch).
error
hash
3-byte rolling hash and zlib-style hash chains.
huffman
Huffman coding for LZX.
lz77
LZ77 token stream producer.
matcher
Match finder.