Goal
Deliver the channel taxonomy agreed in #167 through small, independently reviewable pull requests instead of one bundled implementation.
Current status for 0.7
Working agreements
- Keep public modules and their source families at direct crate-root paths such as
asyncband::mpsc and asyncband/src/mpsc.
- Put machinery shared by multiple families under the private crate-level
internal module; keep family-specific machinery inside that family.
- Preserve existing public behavior unless a subtask explicitly proposes an API change.
- Add one channel family or one implementation concern at a time.
- Compare contention and topology-specific performance with semantically similar Rust channels. Being the fastest is not required, but sustained order-of-magnitude regressions must be treated as implementation defects.
- Keep bounded backpressure and unbounded growth as the initial policies. Sliding, drop-oldest, and lag semantics remain deferred.
- Do not expose queue, ring, Disruptor, or sequencer machinery through the public API.
Remaining delivery
Design baseline: #167. Prior broadcast work: #117 and #146.
Goal
Deliver the channel taxonomy agreed in #167 through small, independently reviewable pull requests instead of one bundled implementation.
Current status for 0.7
channelsource wrapper without changing public paths.asyncband::broadcast::mpmc::unboundedby feat(broadcast): add unbounded MPMC channel #117; feat(broadcast): add a bounded lossless MPMC channel #213 now tracks only the bounded variant.watchchannel is complete in feat(watch): add a latest-state channel #215 and feat(watch): add a latest-state channel #233.oneshot,mpsc,broadcast, andwatchremain independent opt-in features, with nochannelumbrella for 0.7. See build(channel): consolidate feature flags and documentation #216 and docs(channel): clarify feature boundaries #226.Working agreements
asyncband::mpscandasyncband/src/mpsc.internalmodule; keep family-specific machinery inside that family.Remaining delivery
Design baseline: #167. Prior broadcast work: #117 and #146.