lz-decompress
Rust bindings for the lzlib compression library — providing decompression support for .lz files.
This crate offers a safe Rust interface to a subset of lzlib, exposing a function to decompress .lz files.
Features
- Decompress
.lzfiles usinglzlib - Simple, safe Rust API
- tested with integration tests
Usage
use Path;
use decompress_file;
Windows Notes
This crate supports building on Windows with both x86_64 and aarch64 MSVC targets.
Prerequisites
-
Install MSVC Build Tools, including required architectures:
- Open the Visual Studio Installer
- Select "Desktop development with C++"
- In the "Individual components" tab, ensure the following are checked:
- MSVC v14.x x64/x86 build tools
- MSVC v14.x ARM64 build tools (if targeting ARM64)
- Windows 10/11 SDK
- Optional but useful: CMake, Ninja
-
Install Rust targets as needed:
-
Rust target is installed:
-
Building
For x86_64
For aarch64 (ARM64)
Notes
- The C wrapper is compatible with MSVC and does not require POSIX headers like unistd.h.
- When building C code via the cc crate, make sure environment variables for the compiler are set correctly. You can ensure this by:
- Launching from the “x64 Native Tools Command Prompt for VS 2022” (for x86_64), or
- Running vcvars64.bat / vcvarsarm64.bat manually depending on your target.
License
This crate is distributed under the terms of the 2-clause BSD license, the same as the upstream lzlib C library.
See LICENSE.txt for full text. Original C code copyright © Antonio Diaz Diaz.