libbz2-rs-sys
a drop-in compatible rust bzip2 implementation
0.2.5
32M downloads/mo
#1608 most downloaded on crates.io
trifectatechfoundation/libbzip2-rs
What this package is like to depend on
Last release 3 months ago
16 May 2026
Release timing varies
gaps range from 4 weeks to 8 months
Most releases are documented
notes for 7 of 9 stable releases
1 version withdrawn
withdrawn after publishing
2 years old
10 releases · first in 2024
3 releases in the last 12 months
see the full history below
Release timeline
10 releases · Dec 2024 to May 2026Releases
latest 10-
0.2.516 May 2026Release notes
Open source → -
0.2.412 May 2026Release notes
Open source →A bunch of various fixes to make the Rust version match the C version, make documentation consistent and accurate, and work around some edge cases like very large allocations.
What's Changed
- Various small fixes by @folkertdev in #134
- More various fixes by @folkertdev in #135
- Final various fixes by @folkertdev in #136
Full Changelog: v0.2.3...v0.2.4
-
0.2.317 Apr 2026Release notes
Open source →What's Changed
- add the audit report by @folkertdev in #115
- use
--jobs 4for the fuzzers by @folkertdev in #116 - clippy fixes for 1.88.0 by @folkertdev in #117
- shrink
BZ2_RNUMSby @folkertdev in #118 - Remove Windows GNU restriction and add CI build for MSVC by @cruzzil in #119
- Include bzlib.h in libbz2-rs-sys by @j-vanderstoep in #121
- Publish binary by @folkertdev in #122
- adopt zlib/zstd ci improvements by @folkertdev in #123
- fix
--workspaceno longer being passed by @folkertdev in #124 - Use LTO to optimize personality function references away in the cdylib by @bjorn3 in #125
- fix: README clarify usage of libbzip2-rs in Rust projects by @Its-Just-Nans in #127
- document why we spawn a thread in
bzip2by @folkertdev in #129 - Sort arg unsigned by @folkertdev in #126
- use
Cowfor the input/output paths by @folkertdev in #128 - Sort perf tweaks by @folkertdev in #130
- Fix clippy issues in
blocksort.rsby @folkertdev in #132 - change
BZ2_bzerrorto not panic on a NULL pointer by @folkertdev in #131
New Contributors
- @cruzzil made their first contribution in #119
- @j-vanderstoep made their first contribution in #121
- @Its-Just-Nans made their first contribution in #127
Full Changelog: v0.2.1...v0.2.3
-
0.2.205 Aug 2025Release notes
Open source →What's Changed
- add the audit report by @folkertdev in #115
- use
--jobs 4for the fuzzers by @folkertdev in #116 - clippy fixes for 1.88.0 by @folkertdev in #117
- shrink
BZ2_RNUMSby @folkertdev in #118 - Remove Windows GNU restriction and add CI build for MSVC by @petesmc in #119
- Include bzlib.h in libbz2-rs-sys by @j-vanderstoep in #121
New Contributors
- @petesmc made their first contribution in #119
- @j-vanderstoep made their first contribution in #121
Full Changelog: v0.2.1...v0.2.2
-
0.2.116 Jun 2025Release notes
Open source →Highlights
- Performance improvements for (de)compression of small inputs
- Fix off-by-one error in a manual bounds check by @folkertdev in #110
What's Changed
- have
decompressactually decompress arbitrary bytes by @folkertdev in #104 decompress_chunkedfuzzer: handle larger inputs by @folkertdev in #106- Decompress larger inputs by @folkertdev in #107
- specialize
rotate_rightby 1 by @folkertdev in #108 - Fix off-by-one error in a manual bounds check by @folkertdev in #110
- Improve fuzz tests by @ros-cr in #109
rotate_right_1: special-case the 2-byte case by @folkertdev in #111- use uninitialized output buffers for the fuzzers by @folkertdev in #112
- optimize
fallback_sortby @folkertdev in #113
New Contributors
Full Changelog: v0.2.0...v0.2.1
-
0.2.016 Apr 2025Release notes
Open source →This is technically a breaking change, but unless you rely on rust exporting C symbols, you should not run into any issues when upgrading.
highlights
the export-symbols feature now controls whether C symbols are exported. This feature is off by default (that is why this is a breaking change; the behavior of earlier versions was to export those symbols). For rust users that is almost certainly the correct default, because it means libbzip2-rs can be used together with stock bzip2 in the same project. This should fix some issues with symbol clashes between bzip2-sys and libbzip2-sys.
What's Changed
- Clippy 1.85.0 by @folkertdev in #96
- Clarify LICENSE file by @squell in #97
- Update README.md crates.io badge by @seam345 in #100
- add a
export-symbolsfeature flag by @folkertdev in #101 - use
cargo llvm-cov nextestto run tests and gather coverage by @folkertdev in #102 - fuzz with corpus + coverage by @folkertdev in #103
New Contributors
Full Changelog: v0.1.3...v0.2.0
-
0.1.311 Feb 2025Nothing published for this version
-
0.1.210 Feb 2025 withdrawnRelease notes
Open source →What's Changed
Mostly performance improvements, primarily to compression. We've also added the
semver-prefixfeature flag, that will prefix all exposed symbols with a version-specific prefix, so that we don't clash with the C library (or different versions of ourselves). That means multiple versions of bzip2 can be used in the same dependency tree without any weird behavior.- run the
bzip2-rstest suite by @folkertdev in #70 - Add NLnet funding to readme by @erikjee in #71
- refactors in
un_rle_obuf_to_output_fastby @folkertdev in #72 - generate the crc32 lookup table at const time by @folkertdev in #73
- add an example for compression (for benchmarking) by @folkertdev in #74
- extract the save area by @folkertdev in #75
- Decompress shrink more fields by @folkertdev in #76
- Remove double bounds check by @folkertdev in #77
- Shrink huffman decode tables by @folkertdev in #78
- Remove global fields by @folkertdev in #79
- Bzlib macros by @folkertdev in #80
- cleanups by @folkertdev in #81
- Speedup compress by @folkertdev in #83
- Add CI benchmarking by @bjorn3 in #82
- decompress cleanups by @folkertdev in #84
- Update the readme by @bjorn3 in #86
- Revert accidental change in previous PR by @bjorn3 in #87
decompress.rs: faster input reading by @folkertdev in #85- Cleanup
blocksortmore by @folkertdev in #89 - add
semver-prefixfeature for use bybzip2-rsby @folkertdev in #92 - read coding tables in one go if there is sufficient input by @folkertdev in #90
New Contributors
Full Changelog: v0.1.1...v0.1.2
- run the
-
0.1.111 Dec 2024Release notes
Open source →Changelog
- ensure that the
rust-allocatorcan be used withoutstd(it just needsalloc) - in
no_stdmode, still panic instead of callingbz_internal_error. Thecdylibcrate still callsbz_internal_errorin its panic handler to remain compatible, but for rust users an actual panic is desirable and plays nicer with building/linking.
- ensure that the
-
0.1.004 Dec 2024Nothing published for this version