[package]
edition = "2024"
name = "persistent-queue"
version = "0.1.5"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A durable, at-least-once MPSC queue backed by in-memory and durable backends (sled, redb)."
readme = "README.md"
keywords = [
"queue",
"persistent",
"durable",
"mpsc",
"storage",
]
categories = [
"concurrency",
"data-structures",
]
license = "Apache-2.0"
repository = "https://github.com/rolandjitsu/persistent-queue"
[features]
default = []
redb = ["dep:redb"]
rkyv = ["dep:rkyv"]
rocksdb = ["dep:rocksdb"]
serde = [
"dep:serde",
"dep:bincode",
]
sled = ["dep:sled"]
tokio = ["dep:tokio"]
[lib]
name = "persistent_queue"
path = "src/lib.rs"
[[test]]
name = "async_facade"
path = "tests/async_facade.rs"
[[test]]
name = "e2e"
path = "tests/e2e.rs"
[[test]]
name = "fault"
path = "tests/fault.rs"
[[test]]
name = "loom"
path = "tests/loom.rs"
[[test]]
name = "queue"
path = "tests/queue.rs"
[[test]]
name = "typed"
path = "tests/typed.rs"
[[bench]]
name = "async_overhead"
path = "benches/async_overhead.rs"
harness = false
required-features = ["tokio"]
[[bench]]
name = "codec"
path = "benches/codec.rs"
harness = false
required-features = [
"serde",
"rkyv",
]
[[bench]]
name = "throughput"
path = "benches/throughput.rs"
harness = false
[dependencies.bincode]
version = "1"
optional = true
[dependencies.redb]
version = "2"
optional = true
[dependencies.rkyv]
version = "0.8"
optional = true
[dependencies.rocksdb]
version = "0.22"
optional = true
[dependencies.serde]
version = "1"
optional = true
[dependencies.sled]
version = "0.34"
optional = true
[dependencies.tokio]
version = "1"
features = [
"rt",
"sync",
]
optional = true
[dev-dependencies.serde]
version = "1"
features = ["derive"]
[dev-dependencies.tempfile]
version = "3"
[target."cfg(loom)".dependencies.loom]
version = "0.7"
[target."cfg(not(loom))".dev-dependencies.criterion]
version = "0.5"
features = [
"cargo_bench_support",
"async_tokio",
]
default-features = false
[target."cfg(not(loom))".dev-dependencies.rkyv]
version = "0.8"
[target."cfg(not(loom))".dev-dependencies.tokio]
version = "1"
features = [
"rt",
"rt-multi-thread",
"macros",
]
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(loom)"]