Skip to main content

Crate aletheiadb

Crate aletheiadb 

Source
Expand description

AletheiaDB - A high-performance bi-temporal graph database.

AletheiaDB tracks both valid time (when facts were true in reality) and transaction time (when facts were recorded in the database). This enables powerful time-traveling queries and historical analysis.

📊 View Performance Benchmarks

§Architecture

  • Hybrid Storage: Separate current state (fast path) from historical data (temporal path)
  • Anchor+Delta Compression: Reduces storage overhead by 5-6X
  • Copy-on-Write Properties: Efficient property sharing across versions
  • String Interning: Memory-efficient label and property key storage

§Primary Use Case

Designed for LLM integration, enabling reasoning systems to:

  • Query historical knowledge states
  • Track how facts evolved over time
  • Detect contradictions through provenance
  • Reason about temporal causality

§Example

use aletheiadb::{AletheiaDB, properties, WriteOps};
use aletheiadb::core::temporal::time;

let db = AletheiaDB::new()?;

// Create a node
let alice = db.create_node("Person", properties! {
    "name" => "Alice",
    "age" => 30,
})?;

// Later, update a property
db.write(|tx| tx.update_node(alice, properties! {
    "age" => 31,
}))?;

// Query current state
let current = db.get_node(alice)?;

// Time-travel to see historical state
// Use current time as a placeholder for the point in time we want to query
let now = time::now();
let historical = db.get_node_at_time(alice, now, now)?;

Re-exports§

pub use config::AletheiaDBConfig;
pub use config::AletheiaDBConfigBuilder;
pub use config::ConfigError;
pub use config::HistoricalConfig;
pub use config::HistoricalConfigBuilder;
pub use config::VectorIndexConfig;
pub use config::VectorIndexConfigBuilder;
pub use config::WalConfig;
pub use config::WalConfigBuilder;
pub use core::temporal::time;
pub use core::BiTemporalInterval;
pub use core::Edge;
pub use core::EdgeId;
pub use core::EntityId;
pub use core::GLOBAL_INTERNER;
pub use core::InternedString;
pub use core::Node;
pub use core::NodeHeader;
pub use core::NodeId;
pub use core::PropertyKey;
pub use core::PropertyMap;
pub use core::PropertyMapBuilder;
pub use core::PropertyValue;
pub use core::StringInterner;
pub use core::TimeRange;
pub use core::Timestamp;
pub use core::VersionId;
pub use api::ReadOps;
pub use api::ReadTransaction;
pub use api::TxId;
pub use api::TxState;
pub use api::WriteOps;
pub use api::WriteTransaction;
pub use core::error::Error;
pub use core::error::QueryError;
pub use core::error::Result;
pub use core::error::StorageError;
pub use core::error::TemporalError;
pub use core::error::TransactionError;
pub use db::AletheiaDB;
pub use db::VectorIndexBuilder;
pub use index::AdjacencyIndex;
pub use index::CurrentIndexes;
pub use index::TemporalIndexes;
pub use index::vector::DistanceMetric;
pub use index::vector::HnswConfig;
pub use index::vector::TemporalVectorConfig;
pub use storage::CurrentStorage;
pub use storage::index_persistence::PersistenceConfig;
pub use storage::wal::DurabilityMode;
pub use storage::wal::WriteOptions;
pub use query::Query;
pub use query::QueryBuilder;
pub use query::QueryExecutor;
pub use query::QueryPlanner;
pub use query::QueryResults;
pub use query::QueryRow;
pub use query::ir::Direction;
pub use query::ir::Predicate;
pub use query::ir::QueryOp;
pub use query::ir::TraversalDepth;
pub use query::plan::LogicalOp;
pub use query::plan::LogicalPlan;
pub use query::planner::Cost;
pub use query::planner::CostModel;
pub use query::planner::PhysicalOp;
pub use query::planner::PhysicalPlan;
pub use query::planner::Statistics;

Modules§

api
Public API for AletheiaDB.
config
Unified configuration for AletheiaDB.
core
Core primitives for AletheiaDB.
db
Main AletheiaDB database API.
encryption
Encryption at rest (ADR-0028). Encryption at rest for AletheiaDB.
experimental
Experimental features (“Nova” playground).
index
Indexing subsystem for fast queries.
prelude
Prelude for convenient imports of common types and traits. AletheiaDB Prelude
query
Hybrid Query Engine for AletheiaDB
storage
Storage subsystem for graph data.

Macros§

properties
Macro for creating property maps with a convenient syntax.