Skip to content

Releases: artichoke/boba

v5.0.0

08 Aug 04:54
6234606
Compare
Choose a tag to compare

Release 5.0.0 of boba.

boba is published on crates.io.

Breaking changes

  • Remove alloc feature. boba has a required dependency on the alloc crate, but gates the availability of the alloc crate with the alloc feature. boba 4.x did not build when compiling with --no-default-features. Make alloc a non-optional dependency. #160

Testing improvements

  • Add a test that the impl Display for DecodeError is non-empty. #157

Documentation improvements

  • Ensure documentation builds without intradoc link errors when compiling without default features. #160
  • Avoid hardcoding links to std docs when the std feature is enabled. #161

v4.3.1

30 Mar 00:43
f3af800
Compare
Choose a tag to compare

Release boba 4.3.1

boba is published on crates.io.

This release contains packaging improvements:

  • Remove notice from README on derived work. #142

v4.3.0

29 Mar 04:04
b4ea70f
Compare
Choose a tag to compare

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

06 Jan 04:36
8b64430
Compare
Choose a tag to compare

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

24 Dec 16:18
9253fef
Compare
Choose a tag to compare

Release boba 4.1.2.

boba is published on crates.io.

This release contains internal code quality improvements: #66, #67.

v4.1.1

20 Dec 17:18
e333ade
Compare
Choose a tag to compare

Release boba 4.1.1.

boba is published on crates.io.

This release contains enhancements:

  • Avoid write! macro in fmt::Display impl for DecodeError. #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

05 Aug 14:47
a0a8502
Compare
Choose a tag to compare

Release boba 4.1.0.

boba is published on crates.io.

This release contains enhancements:

  • Remove doc-comment dev-dependency. #49
  • Enable boba to build in a no_std + alloc configuration. #52

This release contains improvements to documentation and build process.

v4.0.0

14 Jun 03:01
7dea74a
Compare
Choose a tag to compare

Release boba 4.0.0.

boba is published on crates.io.

This release contains breaking changes and enhancements:

  • boba v4.0.0 removes all unsafe code and boba is now #![forbid(unsafe_code)]. 🎉
  • [BREAKING] Build with no_std if the std feature is not enabled. This fixes a bug in the std feature introduced in v3.0.0. v3.0.0 introduced an optional std feature. v3.0.0 claimed that boba would not build if it was deactivated, but did not enforce this behavior.
  • Do not activate bstr/std feature, even if boba/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.

This release contains improvements to documentation and build process.

v3.0.0

23 Mar 04:52
6450a61
Compare
Choose a tag to compare

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 take AsRef<[u8]>.
  • Relax type constraint on boba::decode to take AsRef<[u8]>.
  • [BREAKING] Squash DecodeError::{InvalidSymbol,NonAscii} into DecodeError::InvalidByte (GH-21).
  • Add optional std feature, enabled by default. This activates the std feature in bstr.

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

19 Mar 15:30
4027ae1
Compare
Choose a tag to compare

Release bubblebabble 2.0.0.

This release contains breaking changes to DecodeError (GH-5):

  • Change fmt::Debug implementation. The old fmt::Debug implementation was really a fmt::Display implementation. Instead, derive(Debug) and move the old implementation into the Display impl. This removes a use of Debug formatting in production code.
  • Do not implement the deprecated Error::description and Error::cause.
  • Rename NonASCII variant to NonAscii to be consistent with Rust API guidelines on naming and acronyms.
  • Rewrote fmt::Display message for NonAscii variant to be consistent with the InvalidSymbol 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.