[package]
name = "chronix-engine"
description = "Storage engine for Chronix — WAL, memtable, columnar segments, indexes, compaction, and caches"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true
keywords = ["timeseries", "database", "lsm", "storage", "tsdb"]
categories = ["database-implementations"]
homepage.workspace = true
documentation.workspace = true
readme.workspace = true
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[lib]
doctest = false
[features]
default = ["field-encryption"]
field-encryption = ["dep:aes-gcm"]
object-store = ["dep:object_store", "dep:url", "dep:parquet"]
[dependencies]
chronix-core.workspace = true
chronix-encoding.workspace = true
arrow.workspace = true
parquet = { workspace = true, optional = true }
crc32c.workspace = true
lz4_flex.workspace = true
zstd.workspace = true
memmap2.workspace = true
crossbeam-skiplist.workspace = true
dashmap.workspace = true
parking_lot.workspace = true
tokio = { workspace = true, features = ["fs", "io-util", "sync", "time"] }
futures.workspace = true
postcard.workspace = true
serde = { workspace = true, features = ["derive"] }
bytes.workspace = true
fnv.workspace = true
rand.workspace = true
metrics.workspace = true
tracing.workspace = true
thiserror.workspace = true
aes-gcm = { workspace = true, optional = true }
object_store = { workspace = true, optional = true }
url = { version = "2", optional = true }
[dev-dependencies]
criterion.workspace = true
proptest.workspace = true
tempfile.workspace = true
serde_json.workspace = true
tokio = { workspace = true, features = ["rt", "macros", "test-util"] }
[[bench]]
name = "wal_bench"
harness = false
[[bench]]
name = "segment_bench"
harness = false
[[bench]]
name = "memtable_bench"
harness = false
[lints]
workspace = true