Skip to main content

grafeo_engine/
lib.rs

1//! # grafeo-engine
2//!
3//! The engine behind Grafeo. You'll find everything here for creating databases,
4//! running queries, and managing transactions.
5//!
6//! Most users should start with the main `grafeo` crate, which re-exports the
7//! key types. If you're here directly, [`GrafeoDB`] is your entry point.
8//!
9//! ## Modules
10//!
11//! - [`database`] - Create and manage databases with [`GrafeoDB`]
12//! - [`session`] - Lightweight handles for concurrent access
13//! - [`config`] - Tune memory, threads, and durability settings
14//! - [`transaction`] - MVCC transaction management (snapshot isolation)
15//! - [`query`] - The full query pipeline: parsing, planning, optimization, execution
16//! - [`catalog`] - Schema metadata: labels, property keys, indexes
17//! - [`admin`] - Admin API types for inspection, backup, and maintenance
18
19#![deny(unsafe_code)]
20
21/// The version of the grafeo-engine crate (from Cargo.toml).
22pub const VERSION: &str = env!("CARGO_PKG_VERSION");
23
24pub mod admin;
25pub mod catalog;
26#[cfg(feature = "cdc")]
27pub mod cdc;
28pub mod config;
29pub mod database;
30#[cfg(feature = "embed")]
31pub mod embedding;
32pub mod memory_usage;
33#[cfg(feature = "metrics")]
34pub mod metrics;
35#[cfg(feature = "algos")]
36pub mod procedures;
37pub mod query;
38pub mod session;
39pub mod transaction;
40
41pub use admin::{
42    AdminService, CompactionStats, DatabaseInfo, DatabaseMode, DatabaseStats, DumpFormat,
43    DumpMetadata, IndexInfo, LpgSchemaInfo, RdfSchemaInfo, SchemaInfo, ValidationError,
44    ValidationResult, ValidationWarning, WalStatus,
45};
46pub use catalog::{Catalog, CatalogError, IndexDefinition, IndexType};
47pub use config::{Config, ConfigError, DurabilityMode, GraphModel};
48pub use database::GrafeoDB;
49pub use grafeo_core::graph::{GraphStore, GraphStoreMut};
50pub use memory_usage::MemoryUsage;
51#[cfg(feature = "metrics")]
52pub use metrics::{MetricsRegistry, MetricsSnapshot};
53pub use session::Session;
54pub use transaction::{CommitInfo, PreparedCommit};