[package]
edition = "2021"
rust-version = "1.60.0"
name = "oneshot"
version = "0.1.13"
authors = ["Linus Färnstrand <faern@faern.net>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = """
Oneshot spsc channel with (potentially) lock-free non-blocking send, and a receiver supporting
both thread blocking receive operations as well as Future based async polling.
"""
readme = "README.md"
keywords = [
"oneshot",
"spsc",
"async",
"sync",
"channel",
]
categories = [
"asynchronous",
"concurrency",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/faern/oneshot"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
async = []
default = [
"std",
"async",
]
std = []
[lib]
name = "oneshot"
path = "src/lib.rs"
[[example]]
name = "recv_before_send"
path = "examples/recv_before_send.rs"
[[example]]
name = "recv_before_send_then_drop_sender"
path = "examples/recv_before_send_then_drop_sender.rs"
[[example]]
name = "recv_ref_before_send"
path = "examples/recv_ref_before_send.rs"
[[example]]
name = "recv_ref_before_send_then_drop_sender"
path = "examples/recv_ref_before_send_then_drop_sender.rs"
[[example]]
name = "recv_timeout_before_send"
path = "examples/recv_timeout_before_send.rs"
[[example]]
name = "recv_timeout_before_send_then_drop_sender"
path = "examples/recv_timeout_before_send_then_drop_sender.rs"
[[example]]
name = "recv_with_dropped_sender"
path = "examples/recv_with_dropped_sender.rs"
[[example]]
name = "send_before_recv"
path = "examples/send_before_recv.rs"
[[example]]
name = "send_then_drop_receiver"
path = "examples/send_then_drop_receiver.rs"
[[example]]
name = "send_with_dropped_receiver"
path = "examples/send_with_dropped_receiver.rs"
[[test]]
name = "assert_mem"
path = "tests/assert_mem.rs"
[[test]]
name = "async"
path = "tests/async.rs"
[[test]]
name = "future"
path = "tests/future.rs"
[[test]]
name = "loom"
path = "tests/loom.rs"
[[test]]
name = "miri"
path = "tests/miri.rs"
[[test]]
name = "raw"
path = "tests/raw.rs"
[[test]]
name = "sync"
path = "tests/sync.rs"
[[bench]]
name = "benches"
path = "benches/benches.rs"
harness = false
[dev-dependencies.async-std]
version = "1"
features = ["attributes"]
[dev-dependencies.tokio]
version = "1"
features = [
"rt",
"rt-multi-thread",
"macros",
"time",
]
[target."cfg(criterion)".dev-dependencies.criterion]
version = "0.5.1"
[target."cfg(oneshot_loom)".dependencies.loom]
version = "0.7.2"
features = ["futures"]
optional = true
[lints.rust.unexpected_cfgs]
level = "deny"
priority = 0
check-cfg = [
"cfg(oneshot_loom)",
"cfg(oneshot_test_delay)",
"cfg(criterion)",
]