[package]
name          = "qsv"
version       = "0.55.2"                                                  #:version
authors       = ["Joel Natividad <joel@datHere.com>"]
description   = "A high performance CSV data-wrangling toolkit."
documentation = "https://github.com/jqnatividad/qsv#qsv-ultra-fast-csv-data-wrangling-toolkit"
homepage      = "https://github.com/jqnatividad/qsv#qsv-ultra-fast-csv-data-wrangling-toolkit"
repository    = "https://github.com/jqnatividad/qsv"
readme        = "README.md"
keywords      = ["csv", "geocode", "data-engineering", "etl", "opendata"]
categories    = ["command-line-utilities", "parser-implementations"]
license       = "MIT OR Unlicense"
autotests     = false
edition       = "2021"
rust-version  = "1.61.0"
autobins      = false
include       = ["src/**/*", "LICENSE-MIT", "README.md", "CHANGELOG.md"]

[[bin]]
name    = "qsv"
test    = true
bench   = false
doctest = false
path    = "src/main.rs"
required-features = ["full"]

[[bin]]
name              = "qsvlite"
test              = true
bench             = false
doctest           = false
path              = "src/mainlite.rs"
required-features = ["lite"]

[[bin]]
name              = "qsvdp"
test              = true
bench             = false
doctest           = false
path              = "src/maindp.rs"
required-features = ["datapusher_plus"]

[[test]]
name = "tests"
path = "tests/tests.rs"

[profile.release]
codegen-units = 1
debug         = false
lto           = true
opt-level     = 3
strip         = true

[profile.release-nightly]
inherits = "release"
panic = "abort"
codegen-units = 1
debug         = false
lto           = true
opt-level     = 3
strip         = true

[profile.test]
opt-level = 3

[dependencies]
ahash = "0.7"
anyhow = "1.0"
byteorder = "1.4"
cached = { version = "0.34", default-features = false, features = [
    "proc_macro",
    "redis_store",
], optional = true }
calamine = "0.18"
censor = { version = "0.2", optional = true }
crossbeam-channel = "0.5"
csv = "1.1"
csv-core = "0.1"
csv-index = "0.1"
docopt = "1"
dynfmt = { version = "0.1", default-features = false, features = [
    "curly",
], optional = true }
eudex = { version = "0.1", optional = true }
ext-sort = { version = "0.1", features = ["memory-limit"] }
filetime = "0.2"
flexi_logger = { version = "0.22", features = [
    "compress",
], default-features = false }
governor = { version = "0.4", optional = true }
grex = { version = "1.3.0", default-features = false }
indicatif = "0.16"
itertools = "0.10"
itoa = "1"
jsonschema = { version = "0.16", features = [
    "resolve-file",
    "resolve-http",
], default-features = false }
jsonxf = { version = "1", optional = true }
jql = { version = "4.0", default-features = false, optional = true }
log = "0.4"
mimalloc = { version = "0.1", default-features = false, optional = true }
mlua = { version = "0.8", features = ["lua54", "vendored"], optional = true }
once_cell = { version = "1.12", features = ["parking_lot"] }
pyo3 = { version = "0.16", features = [
    "abi3",
    "abi3-py38",
    "auto-initialize",
    # Automatically generates `python3.dll` import libraries for Windows targets.
    "generate-abi3-import-lib",    
], optional = true }
qsv-dateparser = "0.4"
qsv-stats = "0.3"
qsv_currency = { version = "0.5", optional = true }
qsv-sniffer = { version = "0.5", features = ["runtime-dispatch-simd"] }
rand = "0.8"
rayon = "1.5"
regex = "1"
reqwest = { version = "0.11", features = [
    "blocking",
    "brotli",
    "cookies",
    "gzip",
    "rustls-tls",
], default-features = false }
reverse_geocoder = { version = "3", optional = true }
ryu = "1"
self_update = { version = "0.30", features = [
    "archive-zip",
    "compression-zip-deflate",
    "rustls",
], default-features = false }
serde = { version = "1", features = ["derive"] }
serde_json = { version = "1.0", features = ["preserve_order"] }
strsim = { version = "0.10", optional = true }
sysinfo = "0.24"
tabwriter = "1.2"
test-data-generation = { version = "0.3", optional = true }
thiserror = { version = "1.0", optional = true }
thousands = "0.2"
threadpool = "1.8"
titlecase = { version = "1", optional = true }
uuid = { version = "1", features = ["v4"] }
url = {version = "2.2", optional = true}
vader_sentiment = { version = "0.1", optional = true }
whatlang = { version = "0.16", optional = true }

[dev-dependencies]
actix-governor = "0.3"
actix-web = { version = "4.0", default-features = false, features = [
    "compress-brotli",
    "compress-gzip",
] }
assert-json-diff = "2.0"
newline-converter = "0.2"
quickcheck = { version = "1", default-features = false }
redis = { version = "0.21", default-features = false }
serial_test = "0.7"

[patch.crates-io]
calamine = { git = "https://github.com/jqnatividad/calamine", rev = "c8623af0165e6d42519c5c5644ae11099022001b" }
csv = { git = "https://github.com/jqnatividad/rust-csv", branch = "perf-tweaks" }
csv-core = { git = "https://github.com/jqnatividad/rust-csv", branch = "perf-tweaks" }
csv-index = { git = "https://github.com/jqnatividad/rust-csv", branch = "perf-tweaks" }
docopt = { git = "https://github.com/jqnatividad/docopt.rs", branch = "perf-clippy-2021" }
ext-sort = { git = "https://github.com/jqnatividad/ext-sort-rs", rev = "fd955e2462a65cae0de9c9e5113ea56d2904106a" }
jsonschema = { git = "https://github.com/Stranger6667/jsonschema-rs", rev = "bfe69d393a842e331832fce55a43e0051b988761"}
grex = { git = "https://github.com/jqnatividad/grex", rev = "45af84167b8bd6d38c9e36ada7fe677bebe8886f" }
redis = { git = "https://github.com/mitsuhiko/redis-rs", rev = "b8eb47303c5728e943b914cd10dc35d1fceee05c" }

[features]
default = ["mimalloc"]
apply = [
    "cached",
    "censor",
    "dynfmt",
    "eudex",
    "qsv_currency",
    "reverse_geocoder",
    "strsim",
    "titlecase",
    "vader_sentiment",
    "whatlang",
]
fetch = [
    "cached",
    "dynfmt",
    "governor",
    "jql",
    "jsonxf",
    "thiserror",
    "url",
]
foreach = []
generate = ["test-data-generation"]
lua = ["mlua"]
python = ["pyo3"]
lite = []
datapusher_plus = []
full = []
nightly = ["regex/unstable", "rand/nightly", "rand/simd_support", "pyo3/nightly"]
