surql-parser 0.1.4

Standalone SurrealQL parser extracted from SurrealDB
Documentation
[workspace]
members = [".", "tools/transform", "macros", "examples/sample-project", "lsp", "mcp", "overshift"]
exclude = ["editors/zed"]

[package]
name = "surql-parser"
version = "0.1.4"
edition = "2024"
license = "Apache-2.0"
description = "Standalone SurrealQL parser extracted from SurrealDB"
repository = "https://github.com/overrealdb/surql-parser"
keywords = ["surrealdb", "surrealql", "parser", "sql", "ast"]
categories = ["parser-implementations", "database"]
rust-version = "1.94"
readme = "README.md"
exclude = [
    "tools/",
    "macros/",
    "examples/",
    "scripts/",
    "transforms/",
    "tests/fixtures/",
    ".github/",
    "DIRTY_HACKS.md",
    "UPSTREAM_HASH",
    "UPSTREAM_VERSION",
]

[dependencies]
anyhow = "1"
reblessive = { version = "0.4", features = ["tree"] }
surrealdb-types = "3.0"
chrono = "0.4"
geo = { version = "0.32", default-features = false }
geo-types = "0.7"
uuid = { version = "1", features = ["v4", "v7"] }
rust_decimal = { version = "1", features = ["maths"] }
regex = "1"
revision = "0.17"
serde = { version = "1", features = ["derive", "rc"] }
tracing = "0.1"
thiserror = "2"
unicase = "2.9"
phf = { version = "0.13", features = ["macros", "unicase"] }
rand = "0.9"
bytes = "1"
argon2 = "0.5"
jsonwebtoken = "10"
storekey = "0.11"
walkdir = { version = "2", optional = true }
toml = { version = "0.8", optional = true }
surrealdb = { version = "3", default-features = false, features = ["kv-mem"], optional = true }
tokio = { version = "1", features = ["rt-multi-thread"], optional = true }

[[bin]]
name = "surql"
path = "src/bin/surql.rs"
required-features = ["cli"]

[features]
default = []
arbitrary = []    # placeholder for upstream cfg_attr(feature = "arbitrary", ...)
surrealism = []   # placeholder for upstream cfg_attr(feature = "surrealism", ...)
build = ["dep:walkdir"]
cli = ["dep:clap", "dep:walkdir", "dep:toml"]
# Validation modes (Layer 3 testing):
# Validation features only activate dev-dependencies in tests — zero impact on library users.
validate-mem = []      # in-memory SurrealDB (no Docker)
validate-docker = []   # testcontainers SurrealDB (reliable)
test-runner = ["dep:surrealdb", "dep:tokio"]

[dependencies.clap]
version = "4"
features = ["derive"]
optional = true

[dev-dependencies]
pretty_assertions = "1"
proptest = "1"
tempfile = "3"
walkdir = "2"
surrealdb = { version = "3", default-features = false, features = ["kv-mem"] }
reqwest = { version = "0.13", features = ["json", "blocking"] }
tokio = { version = "1", features = ["full"] }
testcontainers = "0.24"
testcontainers-modules = { version = "0.12", features = ["surrealdb"] }