[package]
name = "collection"
version = "0.4.2"
authors = [
    "Andrey Vasnetsov <vasnetsov93@gmail.com>",
    "Qdrant Team <info@qdrant.tech>",
]
license = "Apache-2.0"
edition = "2024"

[lints]
workspace = true

[features]
testing = ["common/testing", "segment/testing", "shard/testing"]
tracing = ["dep:tracing", "api/tracing", "segment/tracing"]
data-consistency-check = []
staging = ["shard/staging"]

[dev-dependencies]
criterion = { workspace = true }
fs-err = { workspace = true, features = ["debug"] }
proptest = { workspace = true }
rand_distr = { workspace = true }
rstest = { workspace = true }
tar = { workspace = true }
approx = "0.5.1"
collection = { path = ".", features = ["testing"] }
common = { path = "../common/common", features = ["testing"] }
segment = { path = "../segment", default-features = false, features = ["testing"] }
shard = { path = "../shard", default-features = false, features = ["testing"] }


[target.'cfg(not(target_os = "windows"))'.dev-dependencies]
pprof = { workspace = true }

[dependencies]
bytemuck = { workspace = true }
fs-err = { workspace = true }
parking_lot = { workspace = true }
ahash = { workspace = true }
rand = { workspace = true }
thiserror = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
rmp-serde = { workspace = true }
ordered-float = { workspace = true }
hashring = "0.3.6"
tinyvec = { workspace = true }
siphasher = "1.0.3"
smallvec = { workspace = true }
count-min-sketch = "0.1.8"

tokio = { workspace = true }
tokio-util = { workspace = true }
futures = { workspace = true }
atomicwrites = { workspace = true}
log = { workspace = true }
env_logger = { workspace = true }
async-trait = { workspace = true }
arc-swap = "1.9.1"
tonic = { workspace = true }
uuid = { workspace = true }
url = { workspace = true }
validator = { workspace = true }
http = { workspace = true }
actix-web-validator = { workspace = true }
actix-web = { workspace = true }
actix-files = { workspace = true }

common = { path = "../common/common" }
cancel = { path = "../common/cancel" }
issues = { path = "../common/issues" }
segment = { path = "../segment", default-features = false }
shard = { path = "../shard", default-features = false, features = ["api"] }
sparse = { path = "../sparse" }
api = { path = "../api" }
wal = { path = "../wal" }

itertools = { workspace = true }
indicatif = { workspace = true }
chrono = { workspace = true }
schemars = { workspace = true }
fs_extra = { workspace = true }
semver = { workspace = true }
tempfile = { workspace = true }
sha2 = { workspace = true }
bytes = { workspace = true }
fnv = { workspace = true }
ringbuffer = "0.16.0"
strum = { workspace = true }
urlencoding = { workspace = true }

tracing = { workspace = true, optional = true }
fs4 = { workspace = true }

# AWS S3 support
object_store = { workspace = true }


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

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

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