#analysis #definition #inference #schema-definition #graph-traversal #error #queries

surrealguard-core

Core static analysis logic for SurrealGuard's powerful type inference

1 unstable release

0.1.0 Feb 7, 2025

#855 in Database interfaces

Download history 110/week @ 2025-02-04 25/week @ 2025-02-11

135 downloads per month

MIT/Apache

85KB
2K SLoC

SurrealGuard is a static analysis and type checking system for SurrealQL queries.

Overview

This crate provides tools to validate SurrealQL queries against schema definitions before execution, helping catch errors early and ensure type safety.

Key Features

  • Schema validation
  • Type inference for query parameters
  • Complex query analysis (SELECT, CREATE, UPDATE, etc.)
  • Graph traversal validation

Quick Start

use surrealguard_core::prelude::*;

let mut ctx = AnalyzerContext::new();

// Define schema
analyze(&mut ctx, r#"
    DEFINE TABLE user SCHEMAFULL;
        DEFINE FIELD name ON user TYPE string;
        DEFINE FIELD age ON user TYPE number;
"#).expect("Schema definition failed");

// Analyze a query
let query = "SELECT * FROM user WHERE age > $min_age;";
let result = analyze(&mut ctx, query).expect("Query analysis failed");

Dependencies

~70MB
~1.5M SLoC