[package]
name = "sqruff-lib"
description = "A high-speed SQL linter."
version.workspace = true
repository.workspace = true
edition.workspace = true
license.workspace = true

[lints]
workspace = true

[package.metadata.cargo-machete]
ignored = ["strum"] # false positive result, crate is used in macro expansion

[lib]
crate-type = ["cdylib", "rlib"]
bench = false
doctest = false

[[test]]
name = "rules"
harness = false

[[test]]
name = "templaters"
harness = false

[[bench]]
name = "parsing"
harness = false

[[bench]]
name = "fix"
harness = false

[[bench]]
name = "depth_map"
harness = false

[features]
python = ["pyo3", "sqruff-lib-core/serde"]

[dependencies]
sqruff-lib-core.workspace = true
sqruff-lib-dialects.workspace = true

dyn-clone = "1"
fancy-regex = "0.14.0"
itertools = "0.14.0"
regex = "1"
walkdir = "2.5.0"
enum_dispatch = "0.3.13"
indexmap.workspace = true
common-path = "1.0.0"
configparser = "3.1.0"
phf = { version = "0.11.2", features = ["macros", "unicase"] }
unicase = "2.7.0"
anstyle = "1.0"
tracing = "0.1.41"
pretty_assertions = "1.4.0"
ahash.workspace = true
lazy-regex = "3.2.0"
rayon = "1.10.0"
smol_str = "0.3.1"
nohash-hasher = "0.2.0"
rustc-hash = "2.1.0"
strum_macros = "0.26.4"
strum = "0.26.3"
serde = { version = "1.0", features = ["derive"] }
serde_yaml = { version = "0.9.34", optional = true }
serde_json = "1"
append-only-vec = "0.1.5"

# Only activated on python
pyo3 = { version = "0.23.3", features = ["auto-initialize"], optional = true }

[target.'cfg(all(any(target_arch = "wasm32", target_arch = "wasm64"), target_os = "unknown"))'.dependencies]
getrandom = { version = "0.2", features = ["js"] }

[target.'cfg(all(not(target_os = "windows"), not(target_os = "openbsd"), any(target_arch = "x86_64", target_arch = "aarch64", target_arch = "powerpc64")))'.dependencies]
jemallocator = { version = "0.6.0", package = "tikv-jemallocator" }

[target.'cfg(unix)'.dev-dependencies]
pprof = { version = "0.14", features = ["flamegraph", "criterion"] }

[dev-dependencies]
sqruff-lib = { path = "." }
serde_yaml = "0.9.34"
criterion = "0.5"
expect-test = "1.5"
glob = "0.3"
serde_json = "1"
serde_with = "3.9"
