https://github.com/n0-computer/bao-tree
An implementation of BLAKE3 verified streaming
https://github.com/n0-computer/bao-tree
Last synced: about 1 year ago
JSON representation
An implementation of BLAKE3 verified streaming
- Host: GitHub
- URL: https://github.com/n0-computer/bao-tree
- Owner: n0-computer
- Created: 2023-03-16T07:23:51.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2025-03-28T08:37:18.000Z (about 1 year ago)
- Last Synced: 2025-03-31T16:14:33.233Z (about 1 year ago)
- Language: Rust
- Size: 1.07 MB
- Stars: 21
- Watchers: 7
- Forks: 6
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# bao-tree
[](https://github.com/n0-computer/bao-tree/actions) [](https://docs.rs/bao-tree) [](https://crates.io/crates/bao-tree)
The merkle tree used for BLAKE3 verified streaming.
This is a slightly different take on blake3 verified streaming than the
[bao](https://github.com/oconnor663/bao) crate.
The network wire format for encoded data and slices is compatible with the bao
crate, except that this crate has builtin support for *runtime* configurable chunk
groups.
It also allows encoding not just single ranges but sets of non-overlapping ranges.
E.g. you can ask for bytes `[0..1000,5000..6000]` in a single query.
The intention is also to support both sync and async en/decoding out of the box
with maximum code sharing.
It allows to define both pre- and post order outboard formats as well as custom
outboard formats. Post order outboard formats have advantages for synchronizing
append only files.
For more detailed info, see the [docs](https://docs.rs/bao-tree/latest/bao_tree/)