[package]
edition = "2024"
rust-version = "1.85"
name = "squonk"
version = "1.0.0"
authors = ["Moderately AI"]
build = false
include = [
"src/**",
"examples/**",
"tests/**",
"README.md",
"LICENSE",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Extensible, fast, multi-dialect SQL tokenizer and parser for Rust"
documentation = "https://docs.rs/squonk"
readme = "README.md"
keywords = [
"sql",
"parser",
"ast",
"dialect",
"transpile",
]
categories = [
"parser-implementations",
"database",
]
license = "MIT"
repository = "https://github.com/moderately-ai/squonk"
resolver = "2"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
bigquery = ["squonk-ast/bigquery"]
clickhouse = ["squonk-ast/clickhouse"]
databricks = ["squonk-ast/databricks"]
default = []
document-render = []
duckdb = ["squonk-ast/duckdb"]
full = [
"postgres",
"mysql",
"sqlite",
"duckdb",
"bigquery",
"hive",
"clickhouse",
"databricks",
"mssql",
"snowflake",
"redshift",
"lenient",
]
hive = ["squonk-ast/hive"]
lenient = ["squonk-ast/lenient"]
mssql = ["squonk-ast/mssql"]
mysql = ["squonk-ast/mysql"]
postgres = ["squonk-ast/postgres"]
redshift = ["squonk-ast/redshift"]
serde = [
"serde-serialize",
"serde-deserialize",
]
serde-deserialize = [
"dep:serde",
"squonk-ast/serde-deserialize",
"thin-vec/serde",
]
serde-serialize = [
"dep:serde",
"squonk-ast/serde-serialize",
"thin-vec/serde",
]
snowflake = ["squonk-ast/snowflake"]
sqlite = ["squonk-ast/sqlite"]
[lib]
name = "squonk"
path = "src/lib.rs"
[[example]]
name = "analyze_tables"
path = "examples/analyze_tables.rs"
[[example]]
name = "rewrite_qualify"
path = "examples/rewrite_qualify.rs"
[[example]]
name = "rewrite_redact"
path = "examples/rewrite_redact.rs"
[[test]]
name = "integration"
path = "tests/main.rs"
[dependencies.serde]
version = "1"
features = ["derive"]
optional = true
[dependencies.squonk-ast]
version = "1.0.0"
[dependencies.thin-vec]
version = "0.2"
[dev-dependencies.insta]
version = "1.48.0"
default-features = false
[dev-dependencies.serde_json]
version = "1"
features = ["unbounded_depth"]
[lints.clippy.all]
level = "warn"
priority = -1
[lints.rust]
unsafe_code = "deny"
[lints.rustdoc]
broken_intra_doc_links = "deny"