PackageTrack
Sign in Get early access

lzma-rust2

LZMA / LZMA2 / LZIP / XZ compression ported from 'tukaani xz for java'

0.19.0 19M downloads/mo #2167 most downloaded on crates.io hasenbanck/lzma-rust2

What this package is like to depend on

Last release 7 days ago

16 Aug 2026

Release timing varies

gaps range from 8 days to 3 months

Nearly every release is documented

notes for 41 of 45 stable releases

1 version withdrawn

withdrawn after publishing

1 years old

46 releases · first in 2025

25 releases in the last 12 months

see the full history below

Release timeline

46 releases · Feb 2025 to Aug 2026
2026
Release Pre-release Withdrawn

Releases

latest 46
  1. 0.19.0 16 Aug 2026
    Release notes
    • Add sans-I/O decoders for LZMA1 and LZIP. Thanks @Black-Frost (#109)
    Open source →
  2. 0.18.1 05 Aug 2026
    Release notes

    Fixed

    • Fixed an out-of-bounds panic when encoding more than ~2 GiB through a single stream (#107)
    Open source →
  3. 0.18.0 26 Jul 2026
    Release notes

    Added

    • Add check_type () getter to XzStream. Thanks @Black-Frost (#106)
    Open source →
  4. 0.17.0 19 Jul 2026
    Release notes

    Added

    • Add sans-I/O decoders for LZMA2 and XZ, which allows to better implement async and also multithreaded abstractions. Thanks @Black-Frost (#105)
    Open source →
  5. 0.16.5 05 Jul 2026
    Release notes

    Fixed

    • Hardened the library against malicious or malformed archives.
    Open source →
  6. 0.16.4 31 May 2026
    Release notes

    Fixed

    • Fix invalid XZ output for empty streams
    • Fix debug assertion panic on valid flushes
    Open source →
  7. 0.16.3 20 May 2026
    Release notes

    Fixed

    • Fixed an issue were custom dictionaries could not be used when using LZMA
    Open source →
  8. 0.16.2 16 Feb 2026
    Release notes

    Fixed

    • We provide our own CRC implementation for lzip and xz, which removes the dependency to the crc crate. No functional change to v0.16.0 or v0.16.1
    Open source →
  9. 0.16.1 11 Feb 2026
    Release notes

    Fixed

    • Make sure to at least use crc version 3.2. No functional updates or changes compared to v0.16.1
    Open source →
  10. 0.16.0 10 Feb 2026
    Release notes

    Fixed

    • Fix compatibility issues with the crc crate by raising MSRV to 1.85. No functional updates or changes compared to v0.15.7
    Open source →
  11. 0.15.8 22 May 2026

    Nothing published for this version

  12. 0.15.7 13 Jan 2026
    Release notes

    Fixed

    • Add missing From<TryReserveError> for the no_std Error
    Open source →
  13. 0.15.6 06 Jan 2026
    Release notes

    Fixed

    • Fix possible panic on out of bound access when reading u32_be correctly
    Open source →
  14. 0.15.5 05 Jan 2026
    Release notes

    Fixed

    • Fix possible panic in the range decoder when trying to read u32_be data
    • Fix race condition in multithreaded code in error conditions
    Open source →
  15. 0.15.4 09 Dec 2025
    Release notes

    Changed

    • Fix CRC dependency to exactly 3.3 or else it could break some builds, wrongly selecting a different major version.
    Open source →
  16. 0.15.3 02 Dec 2025
    Release notes

    Changed

    • Pin CRC dependency to not break MSRV. Most likely we will increase the MSRV in the next minor release.
    Open source →
  17. 0.15.2 27 Nov 2025
    Release notes

    Fixed

    • Fix possible underflow in BCJ filters (#72)
    Open source →
  18. 0.15.1 31 Oct 2025
    Release notes

    Fixed

    • Fix fuzzing issues found for the LZMA decoder (#69)
    Open source →
  19. 0.15.0 29 Oct 2025
    Release notes

    Changed

    • Breaking change: LzipReader::new() does not return a Return type anymore, but only itself.

    Fixed

    • Fix issue when reading some compressed lzma2 data, which could lead to an integer overflow (#64)
    Open source →
  20. 0.14.3 07 Oct 2025
    Release notes

    Fixed

    • Fix issue when compiling with feature xz but without including the feature encoder (#61)
    • Fix issue when reading XZ files that allocate too many records (#62)
    Open source →
  21. 0.14.2 25 Sep 2025
    Release notes

    Fixed

    • Fix reading XZ files with multiple streams (#57)
    • Fix integer overflow when using LZMA2 dictionary sizes near 4 GiB (#58)
    Open source →
  22. 0.14.1 21 Sep 2025
    Release notes

    Fixed

    • Fix the safe build without the "optimization" feature.
    Open source →
  23. 0.14.0 20 Sep 2025
    Release notes

    Changed

    • Breaking change: Changed CheckType's default from CRC32 to CRC64 @sorairolake (#37)
    • Breaking change: All Writer now use the AutoFinisher struct to provide auto finishing writer @sorairolake (#46)

    Fixed

    • Export missing FilterConfig and FilterType @sorairolake (#50)
    Open source →
  24. 0.13.0 03 Sep 2025
    Release notes

    Changed

    • Breaking change: Rename identifiers to follow Rust API Guidelines @sorairolake (#35)
    • Breaking change: All single threaded reader / writer are now implementing UnwindSafe and RefUnwindSafe. Before they saved the last std::io:error and kept returning it for all following red/writes. Now they only return that particular error once.
    Open source →
  25. 0.12.0 02 Sep 2025
    Release notes
    • Reduced MSRV to 1.82

    Fixed

    • Fixed documentation @sorairolake
    • Improve docs.rs feature compatibility @sorairolake
    • Internal cleanup @sorairolake
    Open source →
  26. 0.11.0 27 Aug 2025
    Release notes

    Changed

    • Add writers for lzip and xz that finishes the stream on drop. @sorairolake (#26)
    Open source →
  27. 0.10.2 25 Aug 2025
    Release notes

    Fixed

    • Fixed missing call to .finish () when creating files with BCJ filter with XZ.
    Open source →
  28. 0.10.1 25 Aug 2025
    Release notes

    Fixed

    • Fix broken BCJWriter that couldn't properly finish it's encoding process. Now has a proper finish () function.
    Open source →
  29. 0.10.0 22 Aug 2025
    Release notes

    Fixed

    • Add missing "inner ()" and "inner_mut ()" function to the XZ and LZIP reader and writer.
    Open source →
  30. 0.9.0 15 Aug 2025
    Release notes

    Changed

    • XZReader and XZWriter are now Send.
    • Most reader and writer now have "inner ()" and "inner_mut ()" functions.

    Updated

    • Internally refactoring to reduce code duplication for multi-threading code.
    Open source →
  31. 0.8.2 13 Aug 2025
    Release notes

    Fixed

    • Make sure that LZMA reader errors when going out of bound. This could happen if no EOS was found. This was not a memory a safety issue, but instead a problem in how we propagated a fail state in light of certain optimizations.
    • Bound the multithreaded reader as to not use too much memory.
    Open source →
  32. 0.8.1 13 Aug 2025
    Release notes

    Fixed

    • Internally we updated the hash function for the match finders to use a golden ratio based hash instead of the old CRC table based hash. In our test data this was a net win, but it turned out, once tested with bigger datasets, this is a net loss. So we returned back to the CRC table approach (we speak here about a change below 0.01%, but measurable).
    Open source →
  33. 0.8.0 10 Aug 2025
    Release notes

    Added

    • Added single threaded and multithreaded encoder and decoder for the LZIP file format.
    • Added multithreaded encoder and decoder for the XZ file format.

    Changed

    • Renamed LZMA2's "independent work unit" naming from "stream" to "chunk" to not confuse it with XZ streams.
    • LZMA2Writer now take a LZMA2Option struct. This enables both the LZMA2Writer and LZMA2WriterMT to encode multiple chunks for multithreaded decoding.
    • Changed block size of XZOptions to NonZero type.
    • Unified the API of the writers as far as possible.

    Fixed

    • Fixed unbounded spawning of threads when using the multithreaded version of LZMA2 encoder & decoder.
    • Fixed performance regression on linux as reported by @chenxiaolong (#10)
    • Fixed compatibility with liblzma when creating XZ files as reported by @chenxiaolong (#14)
    • XZWriter properly writes out multiple blocks respecting the block_size.
    Open source →
  34. 0.7.0 08 Aug 2025 withdrawn
    Release notes

    Added

    • Added single threaded encoder and decoder for the XZ file format.
    • Ported all pre-filters used by both 7zip and XZ.
    Open source →
  35. 0.6.1 03 Aug 2025
    Release notes

    Fixed

    • Fixed issue with the MT reader discovered by the downstream sevenz-rust2 crate because of incorrect chunk cuts (https://github.com/hasenbanck/sevenz-rust2/issues/44).

    Updated

    • The multithreading now works more efficient, since new threads are only spawned if really needed.
    Open source →
  36. 0.6.0 26 Jul 2025
    Release notes

    Added

    • Added no_std support by disabling the new std feature that is enabled by default. Custom traits and default implementation for &[u8] and &mut [u8] are provided.
    Open source →
  37. 0.5.1 25 Jul 2025
    Release notes

    Fixed

    • Fixed possible deadlocks in the multithreaded encoder and decoder.
    Open source →
  38. 0.5.0 24 Jul 2025
    Release notes

    Added

    • Added multithreaded compression for LZMA2.
    • Added multithreaded decompression for LZMA2.

    Updated

    • Renamed LZMA2Options to LZMAOptions, since it described the way we encode the LZMA encoder, which is shared between LZMA and LZMA2.
    Open source →
  39. 0.4.0 16 Jul 2025
    Release notes

    Updated

    • Increased the encoding performance. For level 0-3 this crate now is faster than lzma. For 4-9 this crate is on same level with liblzma.

    Changed

    • Feature "asm" changed to "optimization" and is also enabled by default. Have a look at the "Safety" section of the README.md for more details.
    Open source →
  40. 0.3.1 12 Jul 2025
    Release notes

    Fixed

    • No functional changes.
    • Fixed the links to the repository.
    Open source →
  41. 0.3.0 12 Jul 2025
    Release notes

    Updated

    • Increased MSRV to v1.85
    • Increased the decoding performance while using only safe Rust. On x86-64 the speed-up was quite large when compared to the v0.2 branch (+50% throughput). Have a look at the "Performance" section of the README.md for more details.
    • Added feature flag "asm" which is activated at default which increases the decoding speed when using LZMA2. Have a look at the "Safety" section of the README.md for more details.
    • Add EncodeMode and MFType enums to public interface (used for the encoder options).

    Removed

    • Remove byteorder dependency.
    • Remove internal types from public interface.
    Open source →
  42. 0.2.2 28 Jun 2025
    Release notes

    Updated

    • No functional updated.
    • Moved into its own repository.
    Open source →
  43. 0.2.1 01 May 2025
    Release notes

    Fixed

    • Fix integer overflow when decompressing uncompressed files over u32::MAX
    • Allow all byteorder versions with major release 1
    Open source →
  44. 0.2.0 31 Mar 2025

    Nothing published for this version

  45. 0.1.8 25 Feb 2025

    Nothing published for this version

  46. 0.1.7 24 Feb 2025

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive