[package]
name = "subms-spsc-ring-buffer"
version = "0.10.0"
edition = "2024"
rust-version = "1.85"
authors = ["Kieran Smith <oss@submillisecond.com>"]
description = "submillisecond.com cookbook recipe - concurrency: subms-spsc-ring-buffer. Wait-free SPSC ring buffer with cache-line padded counters and opposite-index caching; tens-of-nanoseconds enqueue/dequeue."
license = "MIT OR Apache-2.0"
readme = "README.md"
homepage = "https://www.submillisecond.com/cookbook/recipes/subms-spsc-ring-buffer"
documentation = "https://www.submillisecond.com/cookbook/recipes/subms-spsc-ring-buffer"
repository = "https://github.com/submillisecond/subms-cookbook/tree/main/recipes/subms-spsc-ring-buffer"
keywords = ["spsc", "ring-buffer", "lock-free", "concurrency", "subms"]
categories = ["concurrency", "data-structures"]
[package.metadata.docs.rs]
all-features = true
[lib]
name = "subms_spsc_ring_buffer"
path = "src/lib.rs"
[[example]]
name = "perf_main"
required-features = ["harness"]
[[example]]
name = "perf_features"
required-features = ["harness", "bulk", "wait-strategies", "mpsc-fan-in", "mpmc-disruptor", "metrics"]
[features]
default = []
harness = ["dep:subms"]
bulk = []
wait-strategies = []
mpsc-fan-in = []
mpmc-disruptor = []
metrics = []
full = ["bulk", "wait-strategies", "mpsc-fan-in", "mpmc-disruptor", "metrics"]
[dependencies]
subms = { version = "0.9.3", optional = true }