[package]
name = "persistent-queue"
version = "0.1.5"
edition = "2024"
license = "Apache-2.0"
description = "A durable, at-least-once MPSC queue backed by in-memory and durable backends (sled, redb)."
repository = "https://github.com/rolandjitsu/persistent-queue"
keywords = ["queue", "persistent", "durable", "mpsc", "storage"]
categories = ["concurrency", "data-structures"]
[features]
default = []
sled = ["dep:sled"]
redb = ["dep:redb"]
rocksdb = ["dep:rocksdb"]
serde = ["dep:serde", "dep:bincode"]
tokio = ["dep:tokio"]
rkyv = ["dep:rkyv"]
[dependencies]
sled = { version = "0.34", optional = true }
redb = { version = "2", optional = true }
rocksdb = { version = "0.22", optional = true }
serde = { version = "1", optional = true }
bincode = { version = "1", optional = true }
tokio = { version = "1", optional = true, features = ["rt", "sync"] }
rkyv = { version = "0.8", optional = true }
[dev-dependencies]
tempfile = "3"
serde = { version = "1", features = ["derive"] }
[target.'cfg(loom)'.dependencies]
loom = "0.7"
[target.'cfg(not(loom))'.dev-dependencies]
criterion = { version = "0.5", default-features = false, features = ["cargo_bench_support", "async_tokio"] }
tokio = { version = "1", features = ["rt", "rt-multi-thread", "macros"] }
rkyv = "0.8"
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(loom)'] }
[[bench]]
name = "throughput"
harness = false
[[bench]]
name = "async_overhead"
harness = false
required-features = ["tokio"]
[[bench]]
name = "codec"
harness = false
required-features = ["serde", "rkyv"]