Skip to main content

Module graphql

Module graphql 

Source
Expand description

GraphQL-to-SQL Gateway

Feature 12 of the HeliosProxy roadmap.

This module provides a GraphQL gateway that automatically generates efficient SQL queries from GraphQL requests. It includes:

  • Automatic schema introspection from database tables
  • Efficient SQL generation with JOIN optimization
  • N+1 query prevention via DataLoader pattern
  • Query complexity analysis and limits
  • Branch-aware and time-travel queries (HeliosDB-Lite integration)

§Architecture

GraphQL Query → Parse → Validate → Plan → Generate SQL → Execute → Shape Response

§Example

use heliosdb::proxy::graphql::{GraphQLEngine, GraphQLConfig};

let config = GraphQLConfig::builder()
    .endpoint("/graphql")
    .playground(true)
    .max_depth(10)
    .build();

let engine = GraphQLEngine::new(config, db_pool).await?;

let response = engine.execute(GraphQLRequest {
    query: "query { users { id name } }".to_string(),
    variables: None,
    operation_name: None,
}).await?;

Re-exports§

pub use config::GraphQLConfig;
pub use config::GraphQLConfigBuilder;
pub use config::TableConfig;
pub use config::RelationshipConfig;
pub use engine::GraphQLEngine;
pub use engine::GraphQLRequest;
pub use engine::GraphQLResponse;
pub use engine::GraphQLError;
pub use introspector::SchemaIntrospector;
pub use introspector::GraphQLSchema;
pub use introspector::GraphQLType;
pub use introspector::GraphQLField;
pub use sql_generator::SqlGenerator;
pub use sql_generator::SqlQuery;
pub use sql_generator::QueryPlan;
pub use sql_generator::Selection;
pub use sql_generator::Filter;
pub use dataloader::DataLoader;
pub use dataloader::DataLoaderConfig;
pub use dataloader::BatchResult;
pub use resolver::FieldResolver;
pub use resolver::ResolverContext;
pub use resolver::ResolverResult;
pub use validation::QueryValidator;
pub use validation::ValidationError;
pub use validation::ComplexityResult;
pub use metrics::GraphQLMetrics;
pub use metrics::QueryStats;
pub use metrics::OperationMetrics;

Modules§

config
GraphQL Gateway Configuration
dataloader
DataLoader
engine
GraphQL Engine
introspector
Schema Introspector
metrics
GraphQL Metrics
resolver
Field Resolver
sql_generator
SQL Generator
validation
Query Validation

Structs§

BranchContext
Branch context for HeliosDB branch-aware queries
ExecutionContext
GraphQL execution context

Enums§

ConsistencyLevel
Consistency level for GraphQL queries (HeliosDB integration)
DistanceMetric
Distance metric for vector searches
ErrorCode
GraphQL error codes
GraphQLScalar
GraphQL scalar types mapped from SQL
OperationType
GraphQL operation type
RelationType
Relationship type between tables

Functions§

to_camel_case
Convert string to camelCase
to_pascal_case
Convert string to PascalCase
to_snake_case
Convert string to snake_case