[package]
name = "kip_db"
version = "0.1.1-alpha.0"
edition = "2021"
authors = ["Kould <kould2333@gmail.com>"]
description = "轻量级、异步 基于LSM Leveled Compaction K-V数据库"
license = "Apache-2.0"
repository = "https://gitee.com/Kould/KipDB"
readme = "README.md"
keywords = ["async", "KV-Store", "Persistence"]
categories = ["development-tools", "database"]

[[bin]]
name = "cli"
path = "src/bin/cli.rs"

[[bin]]
name = "server"
path = "src/bin/server.rs"

[[bench]]
name = "server_bench"
path = "src/bench/kernel_bench.rs"
harness = false

[profile.release]
debug = true

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
failure = { version = "0.1.5", features = ["derive"] }
# 序列化
prost = "0.9"
prost-derive = "0.9"
serde = { version = "1.0.89", features = ["derive", "rc"] }
bincode = "1.3.3"
# tokio异步
tokio = { version="1.21.2", features = ["full", "signal"] }
futures = "0.3"
tokio-util = { version="0.7.3", features = ["codec"] }
tokio-stream = "0.1.9"
async-trait = "0.1.57"
# 数据承载媒介
bytes = { version = "1.2.1", features = ["serde"] }
# 日志
tracing = "0.1"
tracing-subscriber = "0.3"
# 工具
lz4 = "1.23.1"
integer-encoding = "3.0.4"
clap = { version = "4.2.1", features = ["derive"] }
growable-bloom-filter = "2.0.1"
itertools = "0.10.3"
chrono = "0.4.19"
parking_lot = "0.12.1"
crc32fast = "1.3.2"
skiplist = "0.5.1"
fslock = "0.2.1"
# 其他数据库内核
sled = "0.34.7"

[dev-dependencies]
assert_cmd = "0.11.0"
predicates = "1.0.0"
walkdir = "2.2.7"
tokio-test = "0.4.2"
criterion = { version = "0.3.5", features = ["async_tokio", "html_reports"] }
# 单元测试用
tempfile = "3.0.7"
rand = "0.8.5"

[build-dependencies]
prost-build = "0.9"  # compile protobuf