[package]
name = "distkit"
version = "0.2.2"
edition = "2024"
description = "A toolkit of distributed systems primitives for Rust, backed by Redis"
authors = ["Oyinbo David Bayode <dev.davexoyinbo@gmail.com>"]
license = "MIT"
repository = "https://github.com/dev-davexoyinbo/distkit"
documentation = "https://docs.rs/distkit"
readme = "README.md"
categories = ["algorithms", "concurrency", "data-structures"]
keywords = ["distributed", "counter", "redis", "async", "eventual-consistency"]
[profile.release]
lto = "fat"
codegen-units = 1
opt-level = 3
strip = "symbols"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[features]
default = ["counter", "instance-aware-counter"]
full = ["counter", "instance-aware-counter", "trypema"]
instance-aware-counter = []
counter = []
trypema = ["trypema-crate", "trypema-crate/redis-tokio"]
[dependencies]
async-trait = "0.1.89"
dashmap = "6.1.0"
redis = { version = "1.2.0", features = [
"aio",
"connection-manager",
"tokio-comp",
] }
strum = "0.28.0"
strum_macros = "0.28.0"
thiserror = "2.0.18"
tokio = { version = "1.51", features = ["full"] }
tracing = "0.1.44"
trypema-crate = { package = "trypema", version = "1.0.1", optional = true }
uuid = { version = "1.23.0", features = ["v4"] }
[dev-dependencies]
criterion = { version = "0.8", features = ["async_tokio"] }
[[bench]]
name = "strict_counter"
harness = false
[[bench]]
name = "lax_counter"
harness = false
[[bench]]
name = "strict_instance_aware_counter"
harness = false
[[bench]]
name = "lax_instance_aware_counter"
harness = false