[package]
name = "nexus-core"
version.workspace = true
edition.workspace = true
license.workspace = true
rust-version.workspace = true
repository.workspace = true
homepage.workspace = true
documentation = "https://docs.rs/nexus-core"
description = "Core storage engine, WAL, topology, and data-path primitives for Nexus."
readme = "../../README.md"
keywords = ["object-storage", "s3", "storage", "wal", "compression"]
categories = ["database-implementations", "filesystem", "web-programming"]

[[bin]]
name = "tracer-bullet"
path = "bin/tracer-bullet.rs"

[features]
default = []
dev-mode = []
phase3 = []

[dependencies]
aligned-vec = "0.6.4"
anyhow = "1.0.102"
arc-swap = "1.8.2"
async-trait = "0.1.89"
bytes = "1.10.1"
clap = { version = "4.5.60", features = ["derive"] }
core_affinity = "0.8.3"
crc32c = "0.6.8"
crossbeam-skiplist = "0.1.3"
fastrand = "2.3.0"
flatbuffers = "25.12.19"
fst = "0.4.7"
futures = "0.3.31"
hyper-util = { version = "0.1.17", features = ["server-auto", "tokio", "http1", "http2"] }
memmap2 = "0.9.10"
nix = { version = "0.31.1", features = ["fs", "mman", "process", "socket", "uio"] }
raw-cpuid = "11.6.0"
ring = "0.17.14"
s3s = "0.13.0-alpha.3"
socket2 = "0.6.1"
thiserror = "2.0.18"
tokio = { version = "1.49.0", features = ["io-util", "net", "rt", "sync", "time"] }
tracing = "0.1.41"
trie-rs = "0.4.2"
zstd = "0.13.3"

[target.'cfg(target_os = "linux")'.dependencies]
procfs = "0.18.0"
tokio-uring = "0.5.0"
