pub mod algorithm;
pub mod allocator;
pub mod backend;
pub mod btree;
pub mod compact_edge_record;
pub mod compression;
pub mod constants;
pub mod edge_compat;
pub mod file_coordinator;
#[cfg(feature = "v3-forensics")]
pub mod forensics;
pub mod header;
pub mod index;
pub mod index_persistence;
pub mod kind_index;
pub mod kv_store;
pub mod name_index;
pub mod node;
pub mod pubsub;
pub mod storage;
pub mod string_table;
pub mod wal;
pub mod write_batch;
pub use header::{PersistentHeaderV3, offset as header_offset, size as header_size};
pub use constants::V3_MAGIC;
pub use constants::V3_FORMAT_VERSION;
pub use constants::V3_HEADER_SIZE;
pub use index::{IndexPage, IndexPageType};
pub use node::{
DEFAULT_CACHE_CAPACITY, FIXED_METADATA_SIZE, MAX_CACHE_CAPACITY, MAX_INLINE_DATA,
MAX_NODE_CAPACITY, MAX_PAGE_SIZE as NODE_PAGE_SIZE, MIN_CACHE_CAPACITY, NodePage, NodeRecordV3,
NodeStore, PAGE_HEADER_SIZE as NODE_PAGE_HEADER_SIZE, TraversalCache, TraversalCacheBuilder,
USABLE_SIZE as NODE_PAGE_USABLE_SIZE,
};
pub use allocator::{FreePageHeader, PageAllocator, PageState};
pub use edge_compat::{Direction as EdgeDirection, PageType, V3EdgeCluster, V3EdgeStore};
pub use file_coordinator::FileCoordinator;
pub use kv_store::{KvEntry, KvMetadata, KvStore, KvValue, hash_key as kv_hash_key};
pub use pubsub::{PubSubEvent, PubSubEventType, Publisher, SubscriberId, SubscriptionFilter};
pub use wal::{V3WALRecord, WALRecovery, WALRecoveryStats, WALWriter};
pub use kind_index::KindIndex;
pub use backend::V3Backend;
pub use write_batch::WriteBatch;
pub use node::cache::NodeCache;
pub use algorithm::{BfsConfig, parallel_bfs};
pub use storage::{AdaptivePageManager, MediaDetector, MediaType, PageConfig};
#[cfg(test)]
mod tests;
#[cfg(test)]
mod lazy_init_tests;