queryscript 0.1.4

Queryscript is a SQL-based language that allows you to use higher order abstractions like variables, functions, and modules alongside SQL queries.
[package]
name = "queryscript"
version = "0.1.4"
edition = "2021"
authors = [
    "Ankur Goyal <ankrgyl@gmail.com>",
    "Michael Andrews <09mandrews@gmail.com>",
]
description = "Queryscript is a SQL-based language that allows you to use higher order abstractions like variables, functions, and modules alongside SQL queries."
homepage = "https://github.com/qscl/queryscript"
repository = "https://github.com/qscl/queryscript"
readme = "../README.md"
license = "Apache-2.0"
keywords = ["sql", "bi"]
exclude = ["tests/**"]

[lib]
name = "queryscript"
path = "src/lib.rs"

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

[[bin]]
name = "qs-lsp"
path = "bin/lsp.rs"
required-features = ["lsp"]

[features]
default = ["cli", "all-engines"]
all-engines = ["clickhouse", "duckdb-bundled"]
multi-thread = ["tokio/rt-multi-thread"]
serde = ["dep:serde", "arrow-schema/serde", "half/serde"]
ts = ["serde", "dep:ts-rs"]
cli = ["clap", "home", "rustyline", "backtraces"]
lsp = [
    "multi-thread",
    "tokio/io-util",
    "tokio/io-std",
    "tokio/macros",
    "tokio/fs",
    "regex",
    "serde_json",
    "serde",
    "tower-lsp",
]
backtraces = ["snafu/backtraces"]

# Engines
duckdb-bundled = ["duckdb/bundled"]
clickhouse = ["dep:clickhouse-rs", "chrono-tz", "serde"]

[dependencies]
# This version is synchronized with duckdb-rs
arrow = { version = "34", default-features = false, features = [
    "csv",
    "ffi",
    "json",
    "prettyprint",
] }
# We don't import this directly (rather, through "arrow"), but need the serde feature
# to be propagated through to it.
arrow-schema = { version = "34" }
arrow-buffer = { version = "34" }
arrow-cast = { version = "34" }
parquet = { version = "34" }

async-backtrace = "0.2"

async-trait = "0.1"
chrono = { version = "0.4.22", default-features = false }
colored = "2"
cxx = "1.0"
difference = "2.0"
dyn-clone = "1.0.9"
futures = "0.3"
half = { version = "2.1" }
lazy_static = "1.4.0"
object_store = "0.5.0"
regex = { version = "1", optional = true }
serde = { version = "1", optional = true }
serde_json = { version = "1", optional = true }
snafu = { version = "0.7.3" }
sqlparser = { path = "../sqlparser-rs", version = "0.32.0", package = "sqlparser-queryscript" }
strum = { version = "0.24", features = ["derive"] }
tabled = "0.10"
tokio = "1.25"
tower-lsp = { version = "0.17", optional = true }
ts-rs = { version = "6.2", optional = true }
unicase = "2.6.0"
url = "2.3.1"


# -- ENGINES ---
# DuckDB.
duckdb = { path = "../duckdb-rs", version = "0.7.4", package = "duckdb-queryscript", features=["json", "httpfs", "parquet"] }
# These are duckdb dependencies that we access directly
hashlink = { version = "0.8" }

# ClickHouse
clickhouse-rs = { version = "1.0.0-alpha.1", optional = true }
chrono-tz = { version = "0.5.3", optional = true } # This must be in-sync with clickhouse-rs

# -- CLI ---
clap = { version = "4.0", features = ["derive"], optional = true }
home = { version = "0.5.4", optional = true }
rustyline = { version = "10.0.0", optional = true }


[dev-dependencies]
sqllogictest = "0.10.0"
strum = { version = "0.24", features = ["derive"] }
walkdir = "2.3.2"

[build-dependencies]
cxx-build = "1.0"