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 auth;
26pub mod catalog;
27#[cfg(feature = "cdc")]
28pub mod cdc;
29pub mod config;
30pub mod database;
31#[cfg(feature = "embed")]
32pub mod embedding;
33pub mod execution;
34pub mod export;
35pub mod memory_usage;
36#[cfg(feature = "metrics")]
37pub mod metrics;
38#[cfg(feature = "algos")]
39pub mod procedures;
40pub mod query;
41pub mod session;
42pub mod transaction;
43#[cfg(feature = "shacl")]
44pub mod validation;
45
46pub use admin::{
47    AdminService, CompactionStats, DatabaseInfo, DatabaseMode, DatabaseStats, DumpFormat,
48    DumpMetadata, IndexInfo, LpgSchemaInfo, RdfSchemaInfo, SchemaInfo, ValidationError,
49    ValidationResult, ValidationWarning, WalStatus,
50};
51pub use auth::{Grant, Identity, Role, StatementKind};
52pub use catalog::{Catalog, CatalogError, IndexDefinition, IndexType};
53pub use config::{AccessMode, Config, ConfigError, DurabilityMode, GraphModel};
54pub use database::GrafeoDB;
55pub use grafeo_core::graph::{GraphStore, GraphStoreMut, ProjectionSpec};
56pub use memory_usage::MemoryUsage;
57#[cfg(feature = "metrics")]
58pub use metrics::{MetricsRegistry, MetricsSnapshot};
59#[cfg(all(feature = "gql", feature = "lpg"))]
60pub use query::executor::stream::{OwnedResultStream, OwnedRowIterator, ResultStream, RowIterator};
61pub use session::Session;
62#[cfg(feature = "lpg")]
63pub use transaction::{CommitInfo, PreparedCommit};