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 TIFFRegisterCODEC extension API — single LD_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_strip C-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) or turbolzw_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.