feat: add multiple channel providers

Each provider is enabled via a feature flag.
The currently implemented providers are:
- std::mpsc
- flume
- crossbeam_channel
This commit is contained in:
Callum Leslie 2025-09-04 09:37:55 +01:00
parent 6b754e13e8
commit faa5ba23c5
Signed by: cleslie
GPG key ID: D382C4AFEECEAA90
10 changed files with 761 additions and 189 deletions

View file

@ -15,5 +15,24 @@ exclude = ["flake.nix", "flake.lock", ".envrc", "cliff.toml", "release-plz.toml"
[dependencies]
thiserror = "2.0"
flume = { version = "0.11", optional = true }
crossbeam-channel = { version = "0.5", optional = true }
[features]
default = ["all"]
sync = []
async = []
sync-std = ["sync"]
sync-flume = ["sync", "dep:flume"]
sync-crossbeam = ["sync", "dep:crossbeam-channel"]
all-sync = ["sync-std", "sync-flume", "sync-crossbeam"]
all = ["all-sync"]
[lib]
[package.metadata.docs.rs]
all-features = true