distkit 0.2.2

A toolkit of distributed systems primitives for Rust, backed by Redis
Documentation
[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
# opt-level = "z"
# opt-level = "s"
opt-level = 3
# strip = "debuginfo"
strip = "symbols"


[package.metadata.docs.rs]
# features = ["redis-tokio"]
# default-features = true
all-features = true
# features = ["counter", "trypema"]
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