diskann 0.56.0

DiskANN3 is a composable library for bringing scalable, accurate and cost-effective vector indexing to multiple databases.
Documentation
[package]
name = "diskann"
version.workspace = true
description.workspace = true
authors.workspace = true
repository.workspace = true
license.workspace = true
edition = "2024"

[package.metadata.docs.rs]
default-target = "x86_64-pc-windows-msvc"
targets = ["x86_64-unknown-linux-gnu", "aarch64-pc-windows-msvc", "x86_64-pc-windows-msvc"]

[dependencies]
anyhow.workspace = true
bytemuck = { workspace = true, features = ["must_cast"]}
diskann-utils = { workspace = true, default-features = false }
futures-util = { workspace = true, default-features = false }
half = { workspace = true, features = ["bytemuck", "num-traits"] }
# Note: hashbrown not using workspace because diskann needs default-features = false
# while other crates use default-features = true. Keeping version 0.16.0 consistent.
hashbrown = { version = "0.16.0", default-features = false, features = ["default-hasher"] }
num-traits.workspace = true
rand.workspace = true
thiserror.workspace = true
tokio = { workspace = true, features = ["rt", "rt-multi-thread"] }
tracing = { workspace = true, optional = true }
diskann-vector = { workspace = true }
diskann-wide = { workspace = true }

# Optional Dependencies
dashmap = { workspace = true, optional = true }

[dev-dependencies]
futures-util = { workspace = true, default-features = false  }
pin-project.workspace = true
rand.workspace = true
relative-path = "2.0.1"
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
tokio = { workspace = true, features = ["macros", "sync"] }
dashmap = { workspace = true }

# Some 'cfg's in the source tree will be flagged by `cargo clippy -j 2 --workspace --no-deps --all-targets -- -D warnings`
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(coverage)'] }

[lints.clippy]
# Commenting out for now. It would give warnings.
# undocumented_unsafe_blocks = "warn"
uninlined_format_args = "allow"
unwrap_used = "warn"
expect_used = "warn"
panic = "warn"

[features]
default = ["tracing"]

# Enable "tracing" diagnostics.
tracing = ["dep:tracing"]

# Enable testing providers.
testing = ["dep:dashmap"]

# Enable experimental diversity search
experimental_diversity_search = []