[package]
edition = "2021"
name = "ggsql"
version = "0.1.7"
authors = ["ggsql Team"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A declarative visualization language that extends SQL with powerful data visualization capabilities."
homepage = "https://ggsql.org"
readme = false
license = "MIT"
repository = "https://github.com/posit-dev/ggsql"
[package.metadata.packager]
product-name = "ggsql"
identifier = "com.ggsql.app"
category = "DeveloperTool"
publisher = "ggsql Team"
authors = ["ggsql Team"]
icons = ["../doc/assets/logo.png"]
license-file = "../LICENSE.md"
out-dir = "target/release/packager"
homepage = "https://ggsql.org/"
description = "SQL extension for declarative data visualization"
long-description = "ggsql extends SQL with a VISUALISE clause for declarative data visualization based on Grammar of Graphics principles. Combine SQL queries with visualization specifications to create charts directly from your data."
copyright = "Copyright (c) 2026 ggsql Team"
resources = []
[[package.metadata.packager.binaries]]
path = "ggsql"
main = true
[features]
all-readers = [
"duckdb",
"postgres",
"sqlite",
"polars-sql",
]
all-writers = [
"vegalite",
"ggplot2",
"plotters",
]
builtin-data = []
default = [
"duckdb",
"sqlite",
"vegalite",
"ipc",
"parquet",
"builtin-data",
]
duckdb = [
"dep:duckdb",
"dep:arrow",
]
ggplot2 = []
ipc = ["polars/ipc"]
parquet = ["polars/parquet"]
polars-sql = ["polars/sql"]
postgres = ["dep:postgres"]
python = ["dep:pyo3"]
rest-api = [
"dep:axum",
"dep:tokio",
"dep:tower-http",
"dep:tracing",
"dep:tracing-subscriber",
"duckdb",
"vegalite",
]
sqlite = ["dep:rusqlite"]
vegalite = []
[lib]
name = "ggsql"
path = "lib.rs"
[[bin]]
name = "ggsql"
path = "cli.rs"
[[bin]]
name = "ggsql-rest"
path = "rest.rs"
required-features = ["rest-api"]
[dependencies.anyhow]
version = "1.0"
[dependencies.arrow]
version = "56"
features = ["ipc"]
optional = true
default-features = false
[dependencies.axum]
version = "0.7"
optional = true
[dependencies.chrono]
version = "0.4"
[dependencies.clap]
version = "4.4"
features = ["derive"]
[dependencies.const_format]
version = "0.2"
[dependencies.csscolorparser]
version = "0.8.1"
[dependencies.duckdb]
version = "~1.4"
features = [
"bundled",
"vtab-arrow",
]
optional = true
[dependencies.palette]
version = "0.7"
[dependencies.plotters]
version = "0.3"
optional = true
[dependencies.polars]
version = "0.52"
features = [
"lazy",
"sql",
]
default-features = false
[dependencies.polars-ops]
version = "0.52"
features = ["pivot"]
[dependencies.postgres]
version = "0.19"
optional = true
[dependencies.pyo3]
version = "0.26"
optional = true
[dependencies.rand]
version = "0.8"
[dependencies.regex]
version = "1.10"
[dependencies.rusqlite]
version = "0.38"
features = [
"bundled",
"chrono",
"functions",
"window",
]
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.sprintf]
version = "0.4"
[dependencies.thiserror]
version = "1.0"
[dependencies.tokio]
version = "1.35"
features = ["full"]
optional = true
default-features = false
[dependencies.tower-http]
version = "0.5"
features = [
"cors",
"trace",
]
optional = true
[dependencies.tracing]
version = "0.1"
optional = true
[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
optional = true
[dependencies.tree-sitter]
version = "0.26"
[dependencies.tree-sitter-ggsql]
version = "0.1.7"
[dependencies.uuid]
version = "1.0"
features = ["v4"]
[dev-dependencies.jsonschema]
version = "0.44"
[dev-dependencies.proptest]
version = "1.4"
[dev-dependencies.ureq]
version = "3"