zstd-ruby provides Ruby bindings to Zstandard (zstd), a modern compression algorithm offering configurable compression levels from fast to high-ratio modes. Developed by Facebook, Zstandard delivers compression ratios comparable to gzip's maximum compression while achieving speeds closer to lighter algorithms like LZ4 or Snappy. The gem wraps the C library, bringing Zstandard's versatile compression capabilities to Ruby with both streaming and single-shot interfaces.
The library supports compression levels from 1 (fastest) to 22 (maximum compression), with level 3 as the default balance point. It includes dictionary training capabilities where a pre-trained dictionary dramatically improves compression ratios for small, similar data. zstd-ruby provides both simple compress/decompress methods and streaming interfaces for handling large files without loading everything into memory. The gem exposes frame and dictionary APIs, content checksums, and supports both compressor and decompressor contexts for optimized repeated operations.
zstd-ruby excels in applications requiring both good compression ratios and reasonable speed, such as log compression, database backup compression, and API response compression. It's particularly effective for compressing multiple small, similar documents where dictionary training significantly improves ratios. The gem's configurable levels make it adaptable to different scenarios: fast compression for real-time operations, or maximum compression for archived data. Its balance of speed and compression ratio makes it increasingly popular as a replacement for gzip in modern systems.
gem install zstd-ruby Run this gem instantly in your browser without any installation:
Open in RunRuby.dev →All 47 versions available for installation