Expand description
GraphLite SDK - High-level ergonomic Rust API for GraphLite
This crate provides a high-level, developer-friendly SDK on top of GraphLite’s core API. It offers ergonomic patterns, type safety, connection management, query builders, and transaction support - everything needed to build robust graph-based applications in Rust.
§Quick Start
use graphlite_sdk::{GraphLite, Error};
// Open database
let db = GraphLite::open("./mydb")?;
// Create session and execute query
let session = db.create_session("admin")?;
let result = db.query("MATCH (p:Person) RETURN p.name", &session)?;
// Process results
for row in result.rows() {
println!("Name: {:?}", row.get("p.name"));
}§Features
- Connection Management - Simple connection API with automatic session handling
- Query Builder - Fluent API for building type-safe GQL queries
- Transaction Support - ACID transactions with automatic rollback
- Typed Results - Deserialize query results into Rust structs
- Connection Pooling - Efficient concurrent access (future)
- Async Support - Full tokio integration (future)
§Architecture
┌─────────────────────────────────────────┐
│ Application Code (Your Rust App) │
└─────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ GraphLite SDK (this crate) │
│ - GraphLite (main API) │
│ - Session (session management) │
│ - QueryBuilder (fluent queries) │
│ - Transaction (ACID support) │
│ - TypedResult (deserialization) │
└─────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ GraphLite Core (graphlite crate) │
│ - QueryCoordinator │
│ - Storage Engine │
│ - Catalog Manager │
└─────────────────────────────────────────┘§Module Organization
connection- Database connection and session managementquery- Query builder and executiontransaction- Transaction supportresult- Result handling and deserializationerror- Error types and handling
Re-exports§
pub use connection::GraphLite;pub use connection::Session;pub use error::Error;pub use error::Result;pub use query::QueryBuilder;pub use result::TypedResult;pub use transaction::Transaction;
Modules§
- connection
- Database connection and session management
- error
- Error types for the GraphLite SDK
- query
- Query builder for fluent GQL query construction
- result
- Result handling and typed deserialization
- transaction
- Transaction support with ACID guarantees
Structs§
- Query
Info - Information about a parsed query
- Query
Plan - Query execution plan information
- Query
Result - Query execution result for graph queries
- Row
- Single result row representing variable bindings