Tracking Issue to deliver the channel family incrementally
- Dominant language
- Rust
- Stars
- 269
- Forks
- 38
- Avg merge
- 16h 44m
- Merged PRs (30d)
- 102
Description
## Goal
Deliver the channel taxonomy agreed in #167 through small, independently reviewable pull requests instead of one bundled implementation.
## Current status for 0.7
- The source tree and public modules now share direct crate-root families; #234 removed the intermediate private `channel` source wrapper without changing public paths.
- The ecosystem benchmark baseline is complete in #208.
- Lossless unbounded MPMC broadcast is implemented at `asyncband::broadcast::mpmc::unbounded` by #117; #213 now tracks only the bounded variant.
- The latest-state `watch` channel is complete in #215 and #233.
- The Cargo feature decision is complete: `oneshot`, `mpsc`, `broadcast`, and `watch` remain independent opt-in features, with no `channel` umbrella for 0.7. See #216 and #226.
## 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
- #209: reconsider the existing MPSC backend.
- #210: decide whether an SPSC queue is justified.
- #211: add a competing MPMC queue.
- #212: add a competing SPMC queue after the MPMC design.
- #213: add bounded lossless MPMC broadcast.
- #214: evaluate an SPMC broadcast specialization.
Design baseline: #167. Prior broadcast work: #117 and #146.
Contributor guide
No contributing guide indexed for this repository
Research direction
Read the design baseline in #167 and the relevant remaining subtask, such as #209–#214. Check the direct crate-root families and source paths such as asyncband::mpsc and asyncband/src/mpsc, while keeping shared machinery in the private internal module. The work is done when the selected independently reviewable subtask is implemented without changing unrelated public behavior and meets its stated design and performance expectations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100