TurboLZW
The fastest TIFF-LZW codec available. Pure-Rust SIMD-first implementation of TIFF Compression=5 — the workhorse compression in every GeoTIFF, COG, and TIFF file in the wild. Bit-exact wire-compatible with libtiff’s tif_lzw.c, so any consumer that reads or writes Compression=5 TIFF files today gets the throughput win with zero source changes.
- 12 of 12 cells beat libtiff on the standard synthetic corpus (1.07–11.0× on Intel x86_64).
- 1.15–1.20× over libtiff on the customer 256×256 random-tile shape (the canonical real-imagery cell).
- 3.6× geomean over weezl (the current Rust LZW dependency in irr-transcode and the broader rasterio ecosystem).
- Multi-strip parallel decode at 7.61 GiB/s aggregate on 24-core Win24 (1000 × 64 KB strips, post-PR #60 skip-zero-init).
- Apple M3 Max: 9.81× single-thread speedup on the same shape; 85 GiB/s on zeros / 1 MB through UMA.
- Drop-in via libtiff’s own
TIFFRegisterCODECextension API — singleLD_PRELOAD/DYLD_INSERT_LIBRARIES/ Windows DLL drop replaces the LZW codec for the whole process. GDAL, QGIS, rasterio, Pillow, ImageMagick,tiffcp, and every other libtiff consumer routes through TurboLZW with no rebuild. - 8+ platforms from a single release: Linux x86_64 (gnu / musl), Linux aarch64, macOS x86_64 + aarch64, Windows x86_64 MSVC, WebAssembly (wasm32-unknown + wasm32-wasip1).
Free to decode, free to integrate
Once you have the library, decoding TIFF-LZW strips — from any supported language binding — requires no license and no runtime check. Every tile-consumer workflow runs unrestricted:
- Decoding TIFF Compression=5 strips of any size (8-bit, 16-bit, 32-bit; any predictor).
- Reading multi-strip / tiled GeoTIFFs and COGs through GDAL, QGIS, rasterio, Pillow, ImageMagick.
- Reading single-strip TIFFs via direct
turbolzw_decode_stripC-ABI calls. - Multi-strip parallel decode via
turbolzw-safe::decode_strips_par(rayon-based, 7–10× scaling on real workloads).
Encode — licensed
Producing TIFF-LZW streams requires a free license key from your customer portal account. That covers:
- Single-strip encode via
turbolzw_encode_strip(the C-ABI) orturbolzw_safe::Encoder(Rust). - Multi-strip parallel encode (
encode_strips_par). - All TIFF predictors: none, horizontal differencing (predictor=2), floating-point (predictor=3).
- Full control over early-clear strategy and dictionary reset behavior (the same tuning levers libtiff exposes).
Access
Sign in to the customer portal to download binaries, generate a license, and read the full documentation:
- Download binaries — prebuilt static and shared libraries for every supported platform, plus the C header and the libtiff codec shim. Signed URLs, 15-minute expiry.
- Full documentation — install guides, quickstarts in Rust / C / GDAL, C API reference, integration guides for libtiff, GDAL, QGIS, rasterio, Pillow, and ImageMagick, performance tuning, and the license-activation flow.
- License management — generate, view, and rotate license keys.
No account yet? Your Bitruvius contact provisions customer users once your contract is active.