[package] name = "ring-channel" version = "0.12.0" edition = "2021" authors = ["Bruno Dutra "] description = "Bounded MPMC channel abstraction on top of a ring buffer" repository = "https://github.com/brunocodutra/ring-channel.git" license = "MIT" readme = "README.md" keywords = ["channel", "lock-free", "mpmc", "ring-buffer", "fifo"] categories = ["concurrency", "asynchronous", "no-std"] resolver = "2" [package.metadata.docs.rs] all-features = true [features] default = ["std", "futures_api"] std = ["crossbeam-queue/std", "crossbeam-utils/std", "futures/std", "slotmap/std", "spin/std"] futures_api = ["futures", "slotmap", "spin"] [badges] codecov = { repository = "brunocodutra/ring-channel" } [dependencies] crossbeam-queue = { version = "0.3.4", default-features = false, features = ["alloc"] } crossbeam-utils = { version = "0.8.7", default-features = false } derivative = { version = "2.2.0", default-features = false, features = ["use_core"] } futures = { version = "0.3.21", default-features = false, features = ["executor"], optional = true } slotmap = { version = "1.0.6", optional = true, default-features = false } spin = { version = "0.9.8", default-features = false, features = ["rwlock"], optional = true } [dev-dependencies] criterion = { version = "0.5.1", default-features = false, features = ["async_tokio", "rayon"] } futures = { version = "0.3.21", default-features = false, features = ["alloc"] } proptest = { version = "1.0.0", default-features = false, features = ["std"] } test-strategy = { version = "0.3.0", default-features = false } tokio = { version = "1.16.1", default-features = false, features = [ "macros", "rt-multi-thread", "time", ] } [[bench]] name = "throughput" harness = false [lib] bench = false