Files
qdrant/Cargo.toml
dependabot[bot] b6406d2539 build(deps): bump tokio from 1.50.0 to 1.51.0 (#8613)
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.50.0 to 1.51.0.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.50.0...tokio-1.51.0)

---
updated-dependencies:
- dependency-name: tokio
  dependency-version: 1.51.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-07 10:18:33 +02:00

435 lines
12 KiB
TOML

[package]
name = "qdrant"
version = "1.17.1-dev"
description = "Qdrant - Vector Search engine"
authors = [
"Andrey Vasnetsov <andrey@vasnetsov.com>",
"Qdrant Team <info@qdrant.tech>",
]
readme = "README.md"
homepage = "https://qdrant.tech/"
repository = "https://github.com/qdrant/qdrant"
license = "Apache-2.0"
edition = "2024"
rust-version = "1.94"
default-run = "qdrant"
[lints]
workspace = true
[features]
default = []
service_debug = ["parking_lot/deadlock_detection"]
tracing = [
"api/tracing",
"collection/tracing",
"segment/tracing",
"storage/tracing",
]
console = ["console-subscriber"]
console-subscriber = ["tracing", "dep:console-subscriber"]
tracy = ["tracing-tracy"]
tracing-tracy = ["tracing", "dep:tracing-tracy"]
tokio-tracing = ["tokio/tracing"]
stacktrace = ["rstack-self"]
chaos-testing = []
data-consistency-check = ["collection/data-consistency-check"]
gpu = ["gpu/gpu", "segment/gpu"]
deb = []
staging = ["collection/staging", "storage/staging", "shard/staging"]
[dev-dependencies]
serde_urlencoded = "0.7"
sealed_test = "1.1.0"
mockito = { workspace = true }
tempfile = { workspace = true }
rusty-hook = "^0.11.2"
nix = { workspace = true, features = ["process"] }
fs-err = { workspace = true, features = ["debug", "debug_tokio", "tokio"] } # for nicer error messages
[dependencies]
parking_lot = { workspace = true }
fs-err = { workspace = true }
thiserror = { workspace = true }
log = { workspace = true }
colored = "3"
serde = { workspace = true }
serde_json = { workspace = true }
serde_with = { workspace = true }
chrono = { workspace = true }
rand = { workspace = true }
schemars = { workspace = true }
itertools = { workspace = true }
anyhow = "1.0.98"
futures = { workspace = true }
futures-util = { workspace = true }
clap = { workspace = true }
serde_cbor = { workspace = true }
uuid = { workspace = true }
sys-info = "0.9.1"
ordered-float = { workspace = true }
ahash = { workspace = true }
urlencoding = { workspace = true }
config = { version = "0.15.22", default-features = false, features = ["yaml"] }
tokio = { workspace = true }
tokio-util = { workspace = true }
actix-cors = "0.7.1"
actix-web-validator = { workspace = true }
actix-web = { workspace = true }
actix-files = { workspace = true }
tonic = { workspace = true }
tonic-reflection = { workspace = true }
tower = { version = "0.5.3", features = ["util"] }
tower-layer = "0.3.3"
reqwest = { workspace = true }
# rustls minor version must be synced with actix-web
rustls = { version = "0.23.37", default-features = false, features = [
"logging",
"std",
"tls12",
"ring",
] }
rustls-pki-types = "1.14.0"
rustls-pemfile = "2.2.0"
prometheus = { version = "0.14.0", default-features = false }
validator = { workspace = true }
jsonwebtoken = { version = "10.0", features = ["rust_crypto"] }
murmur3 = { git = "https://github.com/qdrant/murmur3", rev = "2c39087" }
tempfile = { workspace = true }
# Consensus related crates
raft = { workspace = true }
slog = { version = "2.8.2", features = [
"max_level_trace",
"release_max_level_debug",
] }
slog-stdlog = "4.1.1"
prost-for-raft = { workspace = true }
raft-proto = { git = "https://github.com/tikv/raft-rs", rev = "aafb07c7bab439c6139926a77dfafc5b10e9bc84", features = [
"prost-codec",
], default-features = false }
common = { path = "lib/common/common" }
cancel = { path = "lib/common/cancel" }
issues = { path = "lib/common/issues" }
segment = { path = "lib/segment", default-features = false }
shard = { path = "lib/shard", default-features = false }
collection = { path = "lib/collection" }
storage = { path = "lib/storage" }
api = { path = "lib/api" }
gpu = { path = "lib/gpu" }
wal = { path = "lib/wal" }
actix-multipart = "0.7.2"
constant_time_eq = "0.4.2"
# Profiling
tracing = { workspace = true }
tracing-subscriber = { version = "0.3", features = [
"env-filter",
"fmt",
"json",
] }
tracing-log = { version = "0.2", default-features = false, features = [
"log-tracer",
"std",
] }
console-subscriber = { version = "0.5.0", default-features = false, features = [
"parking_lot",
], optional = true }
tracing-tracy = { version = "0.11.4", features = ["ondemand"], optional = true }
actix-web-extras = "0.1.0"
[target.'cfg(target_os = "linux")'.dependencies]
procfs = { version = "0.18.0", default-features = false }
pyroscope = { version = "2.0.0", features = ["backend-pprof-rs", "backend-jemalloc"] }
# Backtrace
rstack-self = { version = "0.3.0", optional = true }
# Jemalloc
[target.'cfg(all(not(target_env = "msvc"), any(target_arch = "x86_64", target_arch = "aarch64")))'.dependencies]
tikv-jemallocator = { version = "0.6.1", features = [
"stats",
"unprefixed_malloc_on_supported_platforms",
"background_threads",
"profiling",
] }
tikv-jemalloc-ctl = { version = "0.6.1", features = ["stats"] }
[workspace.lints.clippy]
cast_lossless = "warn"
doc_link_with_quotes = "warn"
enum_glob_use = "warn"
explicit_into_iter_loop = "warn"
filter_map_next = "warn"
flat_map_option = "warn"
from_iter_instead_of_collect = "warn"
implicit_clone = "warn"
inconsistent_struct_constructor = "warn"
inefficient_to_string = "warn"
manual_is_variant_and = "warn"
manual_let_else = "warn"
needless_continue = "warn"
needless_raw_string_hashes = "warn"
ptr_as_ptr = "warn"
ref_option_ref = "warn"
uninlined_format_args = "warn"
unnecessary_wraps = "warn"
unused_self = "warn"
used_underscore_binding = "warn"
match_wildcard_for_single_variants = "warn"
needless_pass_by_ref_mut = "warn"
unused_async = "warn"
[workspace.lints.rust]
# https://blog.rust-lang.org/2024/05/06/check-cfg.html#expecting-custom-cfgs
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tokio_unstable)'] }
[workspace.lints.rustdoc]
private_intra_doc_links = "allow"
[workspace.dependencies]
actix-web-validator = "7.0.0"
actix-web = { version = "4.13.0", features = ["rustls-0_23", "actix-tls"] }
actix-files = "0.6.10"
ahash = { version = "0.8.12", features = ["serde"] }
anyhow = "1.0.102"
async-trait = "0.1.89"
atomicwrites = "0.4.4"
bincode = "1.3.3" # no upgrade because 2.0.x is much slower https://github.com/qdrant/qdrant/pull/6134
bitpacking = "0.9.3"
bytemuck = { version = "1.25.0", features = [
"derive",
"extern_crate_alloc",
"must_cast",
"transparentwrapper_extra",
] }
bytes = "1.11.1"
cc = "1.2"
chrono = { version = "0.4.44", features = ["serde"] }
clap = { version = "4.6.0", features = ["derive", "env"] }
criterion = "0.8.2"
data-encoding = "2.10.0"
delegate = "0.13.5"
ecow = { version = "0.2.6", features = ["serde"] }
env_logger = "0.11"
fnv = "1.0"
fs4 = "0.13.1"
fs-err = { version = "3.3.0", features = ["tokio"] }
fs_extra = "1.3.0"
futures = "0.3.32"
futures-util = "0.3.32"
generic-tests = "0.1.3"
half = { version = "2.7.1", features = [
"alloc",
"bytemuck",
"serde",
"num-traits",
] }
http = "1.4.0"
humantime = "2.3.0"
indexmap = { version = "2", features = ["serde"] }
url = { version = "2.5.8", features = ["serde"] }
urlencoding = "2.1.3"
indicatif = { version = "0.18.4", features = ["rayon"] }
integer-encoding = "4.1.0"
itertools = "0.14.0"
log = "0.4.29"
memmap2 = "0.9.10"
mockito = "1.7"
nix = { version = "0.31", features = ["fs", "feature"] }
num-traits = "0.2.19"
ordered-float = { version = "5.3.0", features = ["serde", "schemars", "bytemuck"] }
rayon = "1.11.0"
parking_lot = { version = "0.12.5", features = ["arc_lock", "deadlock_detection", "serde"] }
ph = "0.8.5"
pprof = { version = "0.15.0", features = ["flamegraph", "prost-codec"] }
proptest = { version = "1.11.0", default-features = false, features = ["std"] }
prost = "0.12.6"
prost-build = { version = "0.12.6", features = ["cleanup-markdown"] }
prost-wkt-types = "0.5"
prost-for-raft = { package = "prost", version = "=0.11.9" } # version of prost used by raft
raft = { git = "https://github.com/tikv/raft-rs", rev = "aafb07c7bab439c6139926a77dfafc5b10e9bc84" ,features = ["prost-codec"], default-features = false }
rand = "0.10.0"
rand_distr = "0.6.0"
rmp-serde = "~1.3"
reqwest = { version = "0.13.2", default-features = false, features = [
"json",
"http2",
"stream",
"rustls",
"blocking",
] }
rstest = { version = "0.26.1", default-features = false }
schemars = { version = "0.8.22", features = [
"uuid1",
"preserve_order",
"chrono",
"url",
"indexmap2",
] }
semver = { version = "1.0", features = ["serde"] }
self_cell = "1.2.2"
serde = { version = "~1.0", features = ["derive", "rc"] }
serde_cbor = "0.11.2"
serde_variant = "0.1.3"
serde_with = "3.18.0"
sha2 = "0.11.0"
serde_json = { version = "~1.0", features = ["preserve_order"] }
strum = { version = "0.28.0", features = ["derive"] }
tap = "1.0.1"
tar = "0.4.45"
tempfile = "3.27.0"
tinyvec = { version = "1.11.0", features = ["alloc", "latest_stable_rust"] }
tokio = { version = "1.51.0", features = ["full"] }
tokio-util = { version = "0.7", features = ["io", "io-util", "rt"] }
tonic = { version = "0.11.0", features = ["gzip", "tls"] }
tonic-build = { version = "0.11.0", features = ["prost"] }
tonic-reflection = "0.11.0"
tracing = { version = "0.1", features = ["async-await"] }
uuid = { version = "1.23", features = ["v4", "serde"] }
validator = { version = "0.20.0", features = ["derive"] }
zerocopy = { version = "0.8.48", features = ["derive"] }
atomic_refcell = "0.1.13"
byteorder = "1.5.0"
thiserror = "2.0.18"
bitvec = "1.0.1"
smallvec = { version = "1.15.1", features = ["write"] }
dashmap = "6.1"
walkdir = "2.5.0"
[patch.crates-io]
tonic = { git = "https://github.com/qdrant/tonic", branch = "v0.11.0-qdrant" }
hyper = { git = "https://github.com/qdrant/hyper", branch = "v0.14.26-qdrant" }
[[bin]]
name = "schema_generator"
path = "src/schema_generator.rs"
test = false
bench = false
required-features = ["service_debug"]
[[bin]]
name = "wal_inspector"
path = "src/wal_inspector.rs"
test = false
bench = false
required-features = ["service_debug"]
[[bin]]
name = "wal_pop"
path = "src/wal_pop.rs"
test = false
bench = false
required-features = ["service_debug"]
[[bin]]
name = "segment_inspector"
path = "src/segment_inspector.rs"
test = false
bench = false
required-features = ["service_debug"]
[workspace]
members = [
"lib/api",
"lib/collection",
"lib/common/*",
"lib/edge",
"lib/edge/python",
"lib/edge/python/codegen",
"lib/gridstore",
"lib/macros",
"lib/posting_list",
"lib/segment",
"lib/shard",
"lib/sparse",
"lib/storage",
"lib/trififo",
"lib/wal",
]
[profile.release]
lto = "fat"
codegen-units = 1
# Inherit from release, because we are not rebuilding often,
# and we don't want the huge binary sizes from debug builds.
[profile.ci]
inherits = "release"
debug-assertions = true
lto = false
opt-level = 0
# Inherits by default from release
[profile.bench]
lto = false
debug = true
codegen-units = 256 # restore default value for faster compilation
# Profile for performance testing, which is faster to build than release.
[profile.perf]
inherits = "release"
lto = false
opt-level = 3
codegen-units = 256 # restore default value for faster compilation
[profile.dev]
debug = "line-tables-only"
# Override for fast sha256 hashing in dev builds
[profile.dev.package.sha2]
opt-level = 3
# Override for fast sha256 hashing in ci builds
[profile.ci.package.sha2]
opt-level = 3
[package.metadata.deb]
maintainer = "Qdrant Team <team@qdrant.com>"
depends = "$auto"
default-features = true
features = ["deb"]
license-file = "LICENSE"
section = "database"
priority = "optional"
extended-description = """\
Qdrant is a high-performance vector search engine. It is designed to index and search large collections of high-dimensional vectors.\
"""
assets = [
[
"target/release/qdrant",
"usr/bin/",
"755",
],
[
"README.md",
"usr/share/doc/qdrant/README",
"644",
],
[
"static/*",
"var/lib/qdrant/static/",
"644",
],
[
"static/assets/*",
"var/lib/qdrant/static/assets/",
"644",
],
[
"config/deb.yaml",
"etc/qdrant/config.yaml",
"644",
],
]