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/// The version of the grafeo-engine crate (from Cargo.toml).
20pub const VERSION: &str = env!("CARGO_PKG_VERSION");
21
22pub mod admin;
23pub mod catalog;
24#[cfg(feature = "cdc")]
25pub mod cdc;
26pub mod config;
27pub mod database;
28#[cfg(feature = "embed")]
29pub mod embedding;
30#[cfg(feature = "algos")]
31pub mod procedures;
32pub mod query;
33pub mod session;
34pub mod transaction;
35
36pub use admin::{
37 AdminService, CompactionStats, DatabaseInfo, DatabaseMode, DatabaseStats, DumpFormat,
38 DumpMetadata, IndexInfo, LpgSchemaInfo, RdfSchemaInfo, SchemaInfo, ValidationError,
39 ValidationResult, ValidationWarning, WalStatus,
40};
41pub use catalog::{Catalog, CatalogError, IndexDefinition, IndexType};
42pub use config::{Config, ConfigError, DurabilityMode, GraphModel};
43pub use database::GrafeoDB;
44pub use grafeo_core::graph::{GraphStore, GraphStoreMut};
45pub use session::Session;
46pub use transaction::{CommitInfo, PreparedCommit};