infinite_db/lib.rs
1//! InfiniteDB crate root.
2//!
3//! This crate exposes core spatial data types and, via feature flags,
4//! optional embedded storage, server, and sync layers.
5//!
6//! ## Semantic Vocabulary
7//! - `Space`: named N-dimensional dataset with fixed dimensionality.
8//! - `Address`: (`SpaceId`, `DimensionVector`) coordinate key for a record.
9//! - `Node`: any domain entity represented as one or more records in a space.
10//! - `Hyperedge`: explicit relationship linking 2+ endpoint nodes.
11//! - `Signal`: scoped field/sample value over a parent hyperspace prefix.
12//! - `Scope`: fixed coordinate prefix that bounds child records.
13//! - `Revision`: monotonic logical write clock (`RevisionId`).
14//! - `Snapshot`: immutable view assembled from sealed blocks.
15//! - `Tombstone`: logical delete marker for an address/revision.
16//! - `Adapter`: optional trait-based upstream layer for typed labels and spaces.
17
18/// Core spatial and branching types.
19pub mod infinitedb_core;
20
21/// Hilbert and dimension encoding utilities.
22pub mod infinitedb_index;
23
24/// Embedded storage engine components.
25#[cfg(feature = "embedded")]
26pub mod infinitedb_storage;
27
28/// Server-facing API and session management.
29#[cfg(feature = "server")]
30pub mod infinitedb_server;
31
32/// Synchronization and replication primitives.
33#[cfg(feature = "sync")]
34pub mod infinitedb_sync;
35
36// ---------------------------------------------------------------------------
37// Top-level facade
38// ---------------------------------------------------------------------------
39
40#[cfg(feature = "embedded")]
41/// Top-level embedded database handle and diagnostics.
42pub use db::{
43 BulkHyperedgeImport, BulkHyperedgeImportOptions, BulkImportResult, BulkRecordImport,
44 BulkSignalImport, BulkWriteOptions, BulkWriteResult, InfiniteDb, MemoryStats, OpenOptions,
45};
46pub use infinitedb_storage::wal::WalDurability;
47
48#[cfg(feature = "embedded")]
49mod db;
50