[package]
edition = "2024"
name = "suck"
version = "0.0.3"
authors = ["Callum Leslie <git@cleslie.uk>"]
build = false
exclude = [
"flake.nix",
"flake.lock",
".envrc",
"cliff.toml",
"release-plz.toml",
"rustfmt.toml",
".github",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Suck data up through a channel"
homepage = "https://github.com/callumio/suck"
documentation = "https://docs.rs/suck"
readme = "README.md"
keywords = [
"channel",
"pull",
"producer-consumer",
"threading",
]
categories = [
"concurrency",
"data-structures",
"rust-patterns",
]
license = "MIT"
repository = "https://github.com/callumio/suck"
[package.metadata.docs.rs]
all-features = true
[features]
all = [
"all-sync",
"all-async",
]
all-async = ["async-tokio"]
all-sync = [
"sync-std",
"sync-flume",
"sync-crossbeam",
]
async = ["dep:async-trait"]
async-tokio = [
"async",
"dep:tokio",
]
default = ["all"]
sync = []
sync-crossbeam = [
"sync",
"dep:crossbeam-channel",
]
sync-flume = [
"sync",
"dep:flume",
]
sync-std = ["sync"]
[lib]
name = "suck"
path = "src/lib.rs"
[dependencies.arc-swap]
version = "1.7.1"
[dependencies.async-trait]
version = "0.1"
optional = true
[dependencies.crossbeam-channel]
version = "0.5"
optional = true
[dependencies.flume]
version = "0.12"
optional = true
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1.48"
features = [
"sync",
"macros",
"rt-multi-thread",
]
optional = true