loopq 0.1.0

An efficient SPSC lock-free ring buffer with support for no_std, Embassy, and Tokio.
Documentation
[package]
name = "loopq"
version = "0.1.0"
edition = "2024"
license = "MIT OR Apache-2.0"
description = "An efficient SPSC lock-free ring buffer with support for no_std, Embassy, and Tokio."
repository = "https://github.com/ggriffiniii/loopq"
keywords = ["ring-buffer", "lock-free", "spsc", "async", "no_std"]
categories = ["data-structures", "concurrency", "embedded", "asynchronous"]

[features]
embassy = ["dep:embassy-sync"]
tokio = ["dep:tokio"]

[dependencies]
portable-atomic = "1.6"
embassy-sync = { version = "0.6", optional = true }
tokio = { version = "1", features = ["sync"], optional = true }


[target.'cfg(loom)'.dependencies]
loom = "0.7"

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(loom)'] }

[[bench]]
name = "comparison"
harness = false

[dev-dependencies]
proptest = "1.0"
futures = "0.3"
critical-section = { version = "1.1", features = ["std"] }
tokio = { version = "1", features = ["macros", "rt", "time"] }
criterion = "0.5"
ringbuf = "0.3"
rtrb = "0.2"
crossbeam-queue = "0.3"
bbqueue = "0.5"
pprof = { version = "0.13", features = ["criterion", "flamegraph"] }

[profile.bench]
debug = true