boba 3.0.0

Encoder and decoder for the Bubble Babble binary data encoding
Documentation

boba

GitHub Actions Discord Twitter Crate API API master

Implements the the Bubble Babble binary data encoding.

The Bubble Babble Encoding encodes arbitrary binary data into pseudowords that are more natural to humans and that can be pronounced relatively easily.

Bubble Babble encodes 6 characters in 16 bits and includes a checksum embedded in the encoded data. See the Bubble Babble spec.

This crate depends on bstr.

Usage

Add this to your Cargo.toml:

[dependencies]
boba = "3"

Then encode and decode data like:

assert_eq!(boba::encode("Pineapple"), "xigak-nyryk-humil-bosek-sonax");
assert_eq!(boba::decode(b"xexax"), Ok(vec![]));

Crate Features

boba has a std feature which is enabled by default that adds Vec and String support as well as std::error::Error impls. boba does not compile if this feature is disabled, but exists so this crate can add no_std support backwards compatibly.

boba is fuzzed with cargo-fuzz.

Minimum Rust Version Policy

This crate's minimum supported rustc version (MSRV) is 1.42.0.

MSRV may be bumped in minor version releases.

License

boba is licensed under the MIT License (c) Ryan Lopopolo.

boba is derived from bubble-babble-ts @ v1.0.1. bubble-babble-ts is licensed under the MIT License Copyright (c) 2018 Jonathan M. Wilbur <jonathan@wilbur.space>.