Files
xzfcandtimvisee 6b728bb849 Merge io and memory into common (#8155)
* Unify parking_lot/arc_lock feature

* Move lib/common/{io,memory}/* -> lib/common/common/*

- Mmap-related items are grouped into `common::mmap` sub-module:
  - `memory/src/chunked_utils.rs`      -> `common/src/mmap/chunked.rs`
  - `memory/src/madvise.rs`            -> `common/src/mmap/advice.rs`
  - `memory/src/mmap_ops.rs`           -> `common/src/mmap/ops.rs`
  - `memory/src/mmap_type_readonly.rs` -> `common/src/mmap/mmap_readonly.rs`
  - `memory/src/mmap_type.rs`          -> `common/src/mmap/mmap_rw.rs`
- Filesystem-related items are grouped into `common::fs` sub-module:
  - `common/src/fs.rs`          -> `common/src/fs/sync.rs`
  - `io/src/file_operations.rs` -> `common/src/fs/ops.rs`
  - `io/src/move_files.rs`      -> `common/src/fs/move.rs`
  - `io/src/safe_delete.rs`     -> `common/src/fs/safe_delete.rs`
  - `memory/src/checkfs.rs`     -> `common/src/fs/check.rs`
  - `memory/src/fadvise.rs`     -> `common/src/fs/fadvise.rs`
- Rest is moved straight into `common`:
  - `io/src/storage_version.rs` -> `common/src/storage_version.rs`

The old `io` and `memory` are now hollow crates that re-export items
from `common`. These hollow crates will be removed in next commits.

* Replace uses of `io` and `memory` with new paths in `common`

Since `io` and `memory` are just re-exports of `common`, these
replacements are no-op.

* Remove `io` and `memory` crates
2026-02-17 11:01:14 +01:00

221 lines
4.8 KiB
TOML

[package]
name = "segment"
version = "0.6.0"
authors = [
"Andrey Vasnetsov <[email protected]>",
"Qdrant Team <[email protected]>",
]
license = "Apache-2.0"
edition = "2024"
[lints]
workspace = true
[features]
default = []
testing = ["common/testing", "sparse/testing", "gpu/testing", "quantization/testing"]
gpu = ["gpu/gpu"]
rocksdb = ["dep:rocksdb"]
[build-dependencies]
cc = { workspace = true }
[dev-dependencies]
clap = { workspace = true }
criterion = { workspace = true }
dataset = { path = "../common/dataset" }
env_logger = { workspace = true }
fs-err = { workspace = true, features = ["debug"] }
humantime = { workspace = true }
indicatif = { workspace = true }
ndarray = "0.17.2"
ndarray-npy = { version = "0.10.0", default-features = false }
rmp-serde = { workspace = true }
rand_distr = { workspace = true }
walkdir = { workspace = true }
rstest = { workspace = true }
segment = { path = ".", default-features = false, features = ["testing"] }
proptest = { workspace = true }
anyhow = { workspace = true }
[target.'cfg(not(target_os = "windows"))'.dev-dependencies]
pprof = { workspace = true }
[dependencies]
bytemuck = { workspace = true }
data-encoding = { workspace = true }
delegate = { workspace = true }
fs-err = { workspace = true }
integer-encoding = { workspace = true }
tempfile = { workspace = true }
parking_lot = { workspace = true }
rayon = { workspace = true }
itertools = { workspace = true }
rocksdb = { version = "0.24.0", optional = true, default-features = false, features = [
"bindgen-runtime",
"snappy",
"lz4",
] }
uuid = { workspace = true }
bincode = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
serde_cbor = { workspace = true }
serde-value = "0.7"
serde_variant = { workspace = true }
serde-untagged = "0.1.9"
ordered-float = { workspace = true }
thiserror = { workspace = true }
atomic_refcell = { workspace = true }
atomicwrites = { workspace = true }
memmap2 = { workspace = true }
schemars = { workspace = true }
log = { workspace = true }
geo = "0.32.0"
geohash = "0.13.1"
num-traits = { workspace = true }
num-derive = "0.4.2"
num-cmp = "0.1.0"
rand = { workspace = true }
bitvec = { workspace = true }
seahash = "4.1.0"
semver = { workspace = true }
tar = { workspace = true }
fs_extra = { workspace = true }
tinyvec = { workspace = true }
validator = { workspace = true }
chrono = { workspace = true }
ecow = { workspace = true }
fnv = { workspace = true }
indexmap = { workspace = true }
ahash = { workspace = true }
self_cell = { workspace = true }
sha2 = { workspace = true }
smallvec = { workspace = true }
is_sorted = "0.1.1"
strum = { workspace = true }
byteorder = { workspace = true }
tap = { workspace = true }
zerocopy = { workspace = true }
vaporetto = { version = "0.6.5" }
rust-stemmers = { git = "https://github.com/qdrant/rust-stemmers.git", tag = "v1.2.1" }
sysinfo = "0.38"
charabia = { version = "0.9.7", default-features = false, features = [
"greek",
"hebrew",
"thai",
"chinese-segmentation",
"chinese-normalization",
] }
gridstore = { path = "../gridstore" }
common = { path = "../common/common" }
macros = { path = "../macros" }
posting_list = { path = "../posting_list" }
quantization = { path = "../quantization" }
sparse = { path = "../sparse" }
gpu = { path = "../gpu" }
tracing = { workspace = true, optional = true }
macro_rules_attribute = "0.2.2"
nom = "8.0.0"
half = { workspace = true }
roaring = { version = "0.11.3" }
[target.'cfg(target_os = "linux")'.dependencies]
cgroups-rs = "0.3"
procfs = { version = "0.18", default-features = false }
io-uring = "0.7.11"
[[bench]]
name = "vector_search"
harness = false
required-features = ["rocksdb"]
[[bench]]
name = "hnsw_build_graph"
harness = false
[[bench]]
name = "hnsw_search_graph"
harness = false
[[bench]]
name = "conditional_search"
harness = false
[[bench]]
name = "dynamic_mmap_flags"
harness = false
[[bench]]
name = "hnsw_build_asymptotic"
harness = false
[[bench]]
name = "serde_formats"
harness = false
[[bench]]
name = "id_type_benchmark"
harness = false
[[bench]]
name = "map_benchmark"
harness = false
[[bench]]
name = "boolean_filtering"
harness = false
[[bench]]
name = "numeric_index_check_values"
harness = false
[[bench]]
name = "sparse_index_search"
harness = false
[[bench]]
name = "sparse_index_build"
harness = false
required-features = ["rocksdb"]
[[bench]]
name = "sparse_vector_storage"
harness = false
required-features = ["rocksdb"]
[[bench]]
name = "multi_vector_search"
harness = false
[[bench]]
name = "metrics"
harness = false
[[bench]]
name = "range_filtering"
harness = false
[[bench]]
name = "in_memory_id_tracker"
harness = false
[[bench]]
name = "mmap_bitslice_buffered_update_wrapper"
harness = false
[[bench]]
name = "scorer_mmap"
harness = false
[[bench]]
name = "segment_info"
harness = false
[[bench]]
name = "hnsw_incremental_build"
harness = false