Releases: trifectatechfoundation/libbzip2-rs
v0.2.1
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
decompress
actually decompress arbitrary bytes by @folkertdev in #104 decompress_chunked
fuzzer: handle larger inputs by @folkertdev in #106- Decompress larger inputs by @folkertdev in #107
- specialize
rotate_right
by 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_sort
by @folkertdev in #113
New Contributors
Full Changelog: v0.2.0...v0.2.1
v0.2.0
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-symbols
feature flag by @folkertdev in #101 - use
cargo llvm-cov nextest
to 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
v0.1.2
What's Changed
Mostly performance improvements, primarily to compression. We've also added the semver-prefix
feature 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-rs
test suite by @folkertdev in #70 - Add NLnet funding to readme by @erikjee in #71
- refactors in
un_rle_obuf_to_output_fast
by @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
blocksort
more by @folkertdev in #89 - add
semver-prefix
feature for use bybzip2-rs
by @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
Version 0.1.1
Changelog
- ensure that the
rust-allocator
can be used withoutstd
(it just needsalloc
) - in
no_std
mode, still panic instead of callingbz_internal_error
. Thecdylib
crate still callsbz_internal_error
in its panic handler to remain compatible, but for rust users an actual panic is desirable and plays nicer with building/linking.
Version 0.1.0
An initial release, consisting of 2 crates
libbz2-rs-sys
is a rust crate that exposes the full bzip2 API, defined in 100% rust (no FFI is used)libbz2-rs-sys-cdylib
can be used to build a dynamic or static C library that is 100% compatible with stock bzip2