34 releases
Uses new Rust 2024
| new 0.3.0-beta.2 | Apr 15, 2026 |
|---|---|
| 0.3.0-beta.1 | Apr 8, 2026 |
| 0.2.5 | Mar 29, 2026 |
| 0.1.9 | Feb 13, 2026 |
| 0.1.0-alpha.1 | Dec 21, 2025 |
#2108 in Rust patterns
38 downloads per month
Used in 11 crates
(7 directly)
575KB
18K
SLoC
brk_traversable
Trait for navigating and exporting hierarchical data structures.
What It Enables
Traverse nested data collections (datasets, grouped metrics) as trees for inspection, and iterate all exportable vectors for bulk data export.
Key Features
- Tree navigation: Convert nested structs into
TreeNodehierarchies for exploration - Export iteration: Walk all
AnyExportableVecinstances in a data structure - Derive macro:
#[derive(Traversable)]withderivefeature - Compression backends: Support for PCO, LZ4, ZeroCopy, Zstd via feature flags
- Blanket implementations: Works with
Box<T>,Option<T>,BTreeMap<K, V>
Core API
pub trait Traversable {
fn to_tree_node(&self) -> TreeNode;
fn iter_any_exportable(&self) -> impl Iterator<Item = &dyn AnyExportableVec>;
}
Supported Vec Types
All vecdb vector types implement Traversable:
BytesVec,EagerVec,PcoVec(withpcofeature)ZeroCopyVec(withzerocopyfeature)LZ4Vec,ZstdVec(with respective features)LazyVecFrom1/2/3for derived vectors
Feature Flags
derive- Enable#[derive(Traversable)]macropco- PCO compression supportzerocopy- Zero-copy vector supportlz4- LZ4 compression supportzstd- Zstd compression support
Built On
brk_typesforTreeNodetypebrk_traversable_derivefor the derive macro (optional)
Dependencies
~19MB
~310K SLoC