[package] name = "queryscript" version = "0.1.4" edition = "2021" authors = [ "Ankur Goyal ", "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"