Releases: artichoke/boba
v5.0.0
Release 5.0.0 of boba
.
boba
is published on crates.io.
Breaking changes
- Remove
alloc
feature.boba
has a required dependency on thealloc
crate, but gates the availability of thealloc
crate with the alloc feature.boba
4.x did not build when compiling with--no-default-features
. Makealloc
a non-optional dependency. #160
Testing improvements
- Add a test that the
impl Display for DecodeError
is non-empty. #157
Documentation improvements
v4.3.1
v4.3.0
Release boba
4.3.0
boba
is published on crates.io.
This release contains enhancements and performance optimizations. boba::decode
is 35% faster than v4.2.0.
- Optimize encode for empty input by hardcoding the result. #135
- Minimize codebloat by moving encoder and decoder out of generic function. #136
- Optimize
boba::decode
. #137 - Remove
bstr
dependency and reimplement bits that are used in decode. #138
Improvements to dev dependencies and benchmark tooling:
- Update version-sync to 0.9.3 and trim some deps from Cargo.lock. #117
- Remove comparison benches with alternate implementation. #123
- Migrate benches to subcrate with criterion, remove nightly toolchain dep. #134
This release also includes several code quality improvements:
- Scope encoded length to block for constructing the decode buffer. #103
- Format use import statements to have groups for core + other deps. #104
This release contains improvements to documentation and build process.
v4.2.0
Release boba
4.2.0.
boba
is published on crates.io.
This release fixes a bug in boba
's minimal dependency declaration for bstr
. #71
Updating the version of boba
you depend on to 4.2
will allow boba
to build when generating a lockfile with minimal depdenency versions, e.g.
cargo +nightly generate-lockfile -Z minimal-versions
Declare boba
in Cargo.toml
like:
[dependencies]
boba = "4.2"
v4.1.2
v4.1.1
Release boba
4.1.1.
boba
is published on crates.io.
This release contains enhancements:
- Avoid
write!
macro infmt::Display
impl forDecodeError
. #62 - Add additional tests for bytes outside of the encoding alphabet. #63
- Add a (unenforced) CI job for testing
boba
with MSRV Rust 1.42.0. #64
This release contains improvements to documentation and build process.
v4.1.0
Release boba
4.1.0.
boba
is published on crates.io.
This release contains enhancements:
This release contains improvements to documentation and build process.
v4.0.0
Release boba
4.0.0.
boba
is published on crates.io.
This release contains breaking changes and enhancements:
boba
v4.0.0 removes allunsafe
code andboba
is now#![forbid(unsafe_code)]
. 🎉- [BREAKING] Build with
no_std
if thestd
feature is not enabled. This fixes a bug in thestd
feature introduced in v3.0.0. v3.0.0 introduced an optionalstd
feature. v3.0.0 claimed thatboba
would not build if it was deactivated, but did not enforce this behavior. - Do not activate
bstr/std
feature, even ifboba/std
is enabled. - Improve correctness and error handling in
boba::decode
:- Enforce that
-
separators appear where they are expected. - [BREAKING] Return more specific errors when a consonant appears where a vowel is expected.
- [BREAKING] Return more specific errors when a vowel appears where a consonant is expected.
- Enforce that
This release contains improvements to documentation and build process.
v3.0.0
Release boba
3.0.0.
This release renames this crate from bubblebabble
to boba
. boba
is published on crates.io.
This release contains breaking changes and enhancements:
- Relax type constraint on
boba::encode
to takeAsRef<[u8]>
. - Relax type constraint on
boba::decode
to takeAsRef<[u8]>
. - [BREAKING] Squash DecodeError::{InvalidSymbol,NonAscii} into DecodeError::InvalidByte (GH-21).
- Add optional
std
feature, enabled by default. This activates thestd
feature inbstr
.
This release contains many performance optimizations:
boba::encode
is 3x faster than v2.0.0.boba::decode
is 2x faster than v2.0.0.
This release contains improvements to documentation and build process. boba::encode
and boba::decode
are fuzzed regularly.
v2.0.0
Release bubblebabble
2.0.0.
This release contains breaking changes to DecodeError
(GH-5):
- Change
fmt::Debug
implementation. The oldfmt::Debug
implementation was really afmt::Display
implementation. Instead,derive(Debug)
and move the old implementation into theDisplay
impl. This removes a use ofDebug
formatting in production code. - Do not implement the deprecated
Error::description
andError::cause
. - Rename
NonASCII
variant toNonAscii
to be consistent with Rust API guidelines on naming and acronyms. - Rewrote
fmt::Display
message forNonAscii
variant to be consistent with theInvalidSymbol
variant. DecodeError::NonAscii
takes a char of the first char in the given&str
it cannot handle.
This release contains improvements to documentation and build process.