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 2026Releases
latest 46-
0.19.016 Aug 2026 -
0.18.105 Aug 2026Release notes
Open source →Fixed
- Fixed an out-of-bounds panic when encoding more than ~2 GiB through a single stream (#107)
-
0.18.026 Jul 2026 -
0.17.019 Jul 2026Release notes
Open source →Added
- Add sans-I/O decoders for LZMA2 and XZ, which allows to better implement async and also multithreaded abstractions. Thanks @Black-Frost (#105)
-
0.16.505 Jul 2026 -
0.16.431 May 2026Release notes
Open source →Fixed
- Fix invalid XZ output for empty streams
- Fix debug assertion panic on valid flushes
-
0.16.320 May 2026Release notes
Open source →Fixed
- Fixed an issue were custom dictionaries could not be used when using LZMA
-
0.16.216 Feb 2026Release notes
Open source →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
-
0.16.111 Feb 2026Release notes
Open source →Fixed
- Make sure to at least use crc version 3.2. No functional updates or changes compared to v0.16.1
-
0.16.010 Feb 2026Release notes
Open source →Fixed
- Fix compatibility issues with the crc crate by raising MSRV to 1.85. No functional updates or changes compared to v0.15.7
-
0.15.822 May 2026Nothing published for this version
-
0.15.713 Jan 2026 -
0.15.606 Jan 2026Release notes
Open source →Fixed
- Fix possible panic on out of bound access when reading u32_be correctly
-
0.15.505 Jan 2026Release notes
Open source →Fixed
- Fix possible panic in the range decoder when trying to read u32_be data
- Fix race condition in multithreaded code in error conditions
-
0.15.409 Dec 2025Release notes
Open source →Changed
- Fix CRC dependency to exactly 3.3 or else it could break some builds, wrongly selecting a different major version.
-
0.15.302 Dec 2025Release notes
Open source →Changed
- Pin CRC dependency to not break MSRV. Most likely we will increase the MSRV in the next minor release.
-
0.15.227 Nov 2025 -
0.15.131 Oct 2025 -
0.15.029 Oct 2025Release notes
Open source →Changed
- Breaking change:
LzipReader::new()does not return aReturntype anymore, but only itself.
Fixed
- Fix issue when reading some compressed lzma2 data, which could lead to an integer overflow (#64)
- Breaking change:
-
0.14.307 Oct 2025Release notes
Open source →Fixed
- Fix issue when compiling with feature
xzbut without including the featureencoder(#61) - Fix issue when reading XZ files that allocate too many records (#62)
- Fix issue when compiling with feature
-
0.14.225 Sep 2025Release notes
Open source →Fixed
- Fix reading XZ files with multiple streams (#57)
- Fix integer overflow when using LZMA2 dictionary sizes near 4 GiB (#58)
-
0.14.121 Sep 2025 -
0.14.020 Sep 2025Release notes
Open source →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
FilterConfigandFilterType@sorairolake (#50)
-
0.13.003 Sep 2025Release notes
Open source →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.
-
0.12.002 Sep 2025Release notes
Open source →- Reduced MSRV to 1.82
Fixed
- Fixed documentation @sorairolake
- Improve docs.rs feature compatibility @sorairolake
- Internal cleanup @sorairolake
-
0.11.027 Aug 2025Release notes
Open source →Changed
- Add writers for lzip and xz that finishes the stream on drop. @sorairolake (#26)
-
0.10.225 Aug 2025Release notes
Open source →Fixed
- Fixed missing call to .finish () when creating files with BCJ filter with XZ.
-
0.10.125 Aug 2025Release notes
Open source →Fixed
- Fix broken BCJWriter that couldn't properly finish it's encoding process. Now has a proper finish () function.
-
0.10.022 Aug 2025Release notes
Open source →Fixed
- Add missing "inner ()" and "inner_mut ()" function to the XZ and LZIP reader and writer.
-
0.9.015 Aug 2025Release notes
Open source →Changed
XZReaderandXZWriterare now Send.- Most reader and writer now have "inner ()" and "inner_mut ()" functions.
Updated
- Internally refactoring to reduce code duplication for multi-threading code.
-
0.8.213 Aug 2025Release notes
Open source →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.
-
0.8.113 Aug 2025Release notes
Open source →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).
-
0.8.010 Aug 2025Release notes
Open source →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.
-
0.7.008 Aug 2025 withdrawnRelease notes
Open source →Added
- Added single threaded encoder and decoder for the XZ file format.
- Ported all pre-filters used by both 7zip and XZ.
-
0.6.103 Aug 2025Release notes
Open source →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.
-
0.6.026 Jul 2025Release notes
Open source →Added
- Added no_std support by disabling the new
stdfeature that is enabled by default. Custom traits and default implementation for &[u8] and &mut [u8] are provided.
- Added no_std support by disabling the new
-
0.5.125 Jul 2025Release notes
Open source →Fixed
- Fixed possible deadlocks in the multithreaded encoder and decoder.
-
0.5.024 Jul 2025Release notes
Open source →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.
-
0.4.016 Jul 2025Release notes
Open source →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.
-
0.3.112 Jul 2025 -
0.3.012 Jul 2025Release notes
Open source →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.
-
0.2.228 Jun 2025 -
0.2.101 May 2025Release notes
Open source →Fixed
- Fix integer overflow when decompressing uncompressed files over u32::MAX
- Allow all byteorder versions with major release 1
-
0.2.031 Mar 2025Nothing published for this version
-
0.1.825 Feb 2025Nothing published for this version
-
0.1.724 Feb 2025Nothing published for this version