Skip to main content

Crate graphlite_sdk

Crate graphlite_sdk 

Source
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 management
  • query - Query builder and execution
  • transaction - Transaction support
  • result - Result handling and deserialization
  • error - 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§

QueryInfo
Information about a parsed query
QueryPlan
Query execution plan information
QueryResult
Query execution result for graph queries
Row
Single result row representing variable bindings

Enums§

QueryType
Types of query operations
Value
Value types for graph node and edge properties