hashmark
Merkle tree hashing for efficient change detection in Rust.
Overview
hashmark builds Merkle trees from your data structures using serde, enabling:
- Fast change detection via hash comparison
- Field-level diff paths (e.g.,
address.city) - Field reference access via bevy_reflect
- Serializable trees for distributed sync
Quick Start
use Serialize;
use ;
let old = User ;
let new = User ;
let m1 = tree_hash.unwrap;
let m2 = tree_hash.unwrap;
match merkle_diff
Remote Sync
Send Merkle trees between peers for efficient distributed sync:
use ;
use Reflect;
use ;
// Peer A: send merkle tree (not the data)
let config = Config ;
let merkle = tree_hash.unwrap;
let json = to_string.unwrap;
// Peer B: receive and compare against local data
let received: Merkle = from_str.unwrap;
let local = Config ;
let changes = received.diff_with_data_reflect.unwrap;
for change in &changes
License
MIT