#![expect(single_use_lifetimes, reason = "borsh shenanigans")]
pub mod bloom_filter;
pub mod delta;
pub mod handshake;
pub mod hash_comparison;
pub mod levelwise;
pub mod protocol;
pub mod protocol_trait;
pub mod snapshot;
pub mod state_machine;
pub mod storage_bridge;
pub mod subtree;
pub mod transport;
pub mod wire;
pub use handshake::{
SyncCapabilities, SyncHandshake, SyncHandshakeResponse, SYNC_PROTOCOL_VERSION,
};
pub use protocol::{
calculate_divergence, is_protocol_supported, select_protocol, select_protocol_with_fallback,
ProtocolSelection, SyncProtocol, SyncProtocolKind,
};
pub use delta::{
DeltaApplyResult, DeltaPayload, DeltaSyncRequest, DeltaSyncResponse,
DEFAULT_DELTA_SYNC_THRESHOLD,
};
pub use hash_comparison::{
compare_tree_nodes, CrdtType, LeafMetadata, TreeCompareResult, TreeLeafData, TreeNode,
TreeNodeRequest, TreeNodeResponse, MAX_CHILDREN_PER_NODE, MAX_LEAF_VALUE_SIZE,
MAX_NODES_PER_RESPONSE, MAX_TREE_DEPTH,
};
pub use bloom_filter::{
BloomFilterRequest, BloomFilterResponse, DeltaIdBloomFilter, DEFAULT_BLOOM_FP_RATE,
};
pub use wire::{InitPayload, MessagePayload, StreamMessage, MAX_TREE_REQUEST_DEPTH};
pub use snapshot::{
check_snapshot_safety, BroadcastMessage, SnapshotBoundaryRequest, SnapshotBoundaryResponse,
SnapshotComplete, SnapshotCursor, SnapshotEntity, SnapshotEntityPage, SnapshotError,
SnapshotPage, SnapshotRequest, SnapshotStreamRequest, SnapshotVerifyResult,
DEFAULT_SNAPSHOT_PAGE_SIZE, MAX_COMPRESSED_PAYLOAD_SIZE, MAX_DAG_HEADS, MAX_ENTITIES_PER_PAGE,
MAX_ENTITY_DATA_SIZE, MAX_SNAPSHOT_PAGES, MAX_SNAPSHOT_PAGE_SIZE,
};
pub use subtree::{
should_use_subtree_prefetch, SubtreeData, SubtreePrefetchRequest, SubtreePrefetchResponse,
DEEP_TREE_THRESHOLD, DEFAULT_SUBTREE_MAX_DEPTH, MAX_CLUSTERED_SUBTREES, MAX_DIVERGENCE_RATIO,
MAX_ENTITIES_PER_SUBTREE, MAX_SUBTREES_PER_REQUEST, MAX_SUBTREE_DEPTH, MAX_TOTAL_ENTITIES,
};
pub use levelwise::{
compare_level_nodes, should_use_levelwise, LevelCompareResult, LevelNode, LevelWiseRequest,
LevelWiseResponse, MAX_LEVELWISE_DEPTH, MAX_NODES_PER_LEVEL, MAX_PARENTS_PER_REQUEST,
MAX_REQUESTS_PER_SESSION,
};
pub use state_machine::{
build_handshake, build_handshake_from_raw, estimate_entity_count, estimate_max_depth,
LocalSyncState,
};
pub use transport::{EncryptionState, SyncTransport};
pub use protocol_trait::SyncProtocolExecutor;
pub use storage_bridge::create_runtime_env;