https://github.com/artichoke/boba
💦 Rust implementation of the Bubble Babble binary data encoding
https://github.com/artichoke/boba
artichoke bubblebabble decoding encoding ruby rust rust-crate
Last synced: about 1 year ago
JSON representation
💦 Rust implementation of the Bubble Babble binary data encoding
- Host: GitHub
- URL: https://github.com/artichoke/boba
- Owner: artichoke
- License: mit
- Created: 2019-11-26T06:34:38.000Z (over 6 years ago)
- Default Branch: trunk
- Last Pushed: 2025-04-01T00:13:48.000Z (about 1 year ago)
- Last Synced: 2025-04-01T01:24:54.944Z (about 1 year ago)
- Topics: artichoke, bubblebabble, decoding, encoding, ruby, rust, rust-crate
- Language: Rust
- Homepage: https://crates.io/crates/boba
- Size: 1.99 MB
- Stars: 14
- Watchers: 6
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# boba
[](https://github.com/artichoke/boba/actions)
[](https://codecov.artichokeruby.org/boba/index.html)
[](https://discord.gg/QCe2tp2)
[](https://twitter.com/artichokeruby)
[](https://crates.io/crates/boba)
[](https://docs.rs/boba)
[](https://artichoke.github.io/boba/boba/)
Implements the the [Bubble Babble binary data encoding][bubble-babble-spec].
> 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][bubble-babble-spec].
## Usage
Add this to your `Cargo.toml`:
```toml
[dependencies]
boba = "6.0.0"
```
Then encode and decode data like:
```rust
assert_eq!(boba::encode("Pineapple"), "xigak-nyryk-humil-bosek-sonax");
assert_eq!(boba::decode(b"xexax"), Ok(vec![]));
```
## Crate Features
Boba is `no_std` compatible with a required dependency on the [`alloc`] crate.
`boba` is [fuzzed](fuzz/fuzz_targets) with [cargo-fuzz].
## Minimum Rust Version Policy
This crate's minimum supported `rustc` version (MSRV) is `1.83.0`.
MSRV may be bumped in minor version releases.
## License
`boba` is licensed under the [MIT License](LICENSE) (c) Ryan Lopopolo.
[bubble-babble-spec]: spec/Bubble_Babble_Encoding.txt
[`alloc`]: https://doc.rust-lang.org/stable/alloc/index.html
[`std`]: https://doc.rust-lang.org/stable/std/index.html
[`std::error::error`]:
https://doc.rust-lang.org/stable/std/error/trait.Error.html
[cargo-fuzz]: https://crates.io/crates/cargo-fuzz