Repository navigation
Releases: paddor/fanring.rs
Releases · paddor/fanring.rs
Release list
yring 0.3.20
Changed
- Clarify batched publication and conservative wakeup hints in the README.
fanring 0.3.9
Added
- MPSC
Receiver::poll_all_lanesdiscovers unsignaled publications for scalar
and tagged receives while preserving paused lanes and receive rotation. - MPSC
Sender::try_register_with_capacityregisters a lane with independent
ring capacity. Ordinary registrations retain the channel's original capacity. - MPSC
Sender::lanereturns an opaque, Copy, generation-safeLaneId.
Channel identities never wrap; exhausted lane generations are not reused. - MPSC
Receiver::with_lane_idsborrows a receive view returning(LaneId, T)
from ordinary, fair, blocking, timed, and asynchronous single-value receives.
Plain receives share the drain implementation without constructing lane IDs. - MPSC receivers can pause/resume ordinary drainage, receive from one lane,
and close a lane independently. Paused lanes retain FIFO and backpressure;
targeted receives remain available and stale IDs cannot select reused slots.
Changed
- Require yring 0.3.20.
- Move usage guidance to
GETTING_STARTED.mdand consolidate teardown policy
contracts inDESIGN.md.
Fixed
- Closing a deferred MPSC lane rejects subsequent sends even when the producer
still has cached space. Signaled, unsignaled, and deferred sends check the
lane's own disconnect state.
yring 0.3.19
Added
-
AsyncProducer::poll_ready()registers capacity wakes without owning a
value. It becomes ready when capacity is available or the consumer drops. -
Consumer::release_with_full()publishes batched consumed credits and
reports whether a full or registered producer needs a wake. It preserves
unread prefetched slots and leaves release watermarks to the caller.
fanring 0.3.8
Changed
- Require yring 0.3.19 with caller-controlled consumer batch release hints
and asynchronous producer capacity polling.
yring 0.3.18
Added
Consumer::pop_into()moves up to a limit of prefetched items into aVec
with at most two contiguous copies, preserving FIFO order and slot
ownership rules.Consumer::pop_into_while()moves the prefix of the prefetched window that
an admission predicate accepts, reading each item in place and leaving the
first rejected item at the front of the window. A rejected item, or every
item seen before a panicking predicate, is offered again by the next call.
fanring 0.3.7
Added
- Add endpoint-local
WaitStrategy::SpinForfor bounded active spinning before
synchronous send and receive operations park. - MPSC
Receiver::try_recv_batch_intoappends a bounded batch without
blocking, releases consumed slots before returning, and reportsEmptyor
Disconnectedwhen nothing was appended. - MPSC
Sender::is_fullreports whether the sender's lane can take another
value, so lossy producers can skip building a value they would drop. - MPSC
Receiver::try_recv_batch_into_whiletakes an admission predicate that
sees each value in place and stops the batch at the first rejected value,
which stays queued. Accepted windows still move in bulk. The predicate may
see a value again on a later call. Requires yring 0.3.18. - MPSC
Sender::try_send_unsignaledpublishes a value without marking its
lane ready or waking the receiver, which skips the per-send atomic
read-modify-write underDeferredteardown. The caller provides the wakeup
and the fences it needs. Signaled and unsignaled sends may share a lane. - MPSC
Receiver::try_recv_scan_into_whilevisits every registered lane
instead of relying on readiness, so it finds unsignaled values. Each lane
stays queued at most once. When it returns fewer values than requested
without a rejection, every lane registered when the call started was
observed empty during the call.
Changed
- MPSC single-value receive credits scale to half-ring batches, independent of
the 64-item fairness burst. Rings above 128 slots resume full producers at
the half-full low watermark; smaller rings retain their existing batch size.
Empty-lane handling and explicit, bulk, and async receive flushes still
release partial credits; capacity-one channels and teardown still wake
immediately when progress is possible. - MPSC
recv_batch_intoandrecv_batch_into_asyncmove whole prefetched
windows out of sender rings withyring::Consumer::pop_intoinstead of
popping one value at a time. Lane rotation, readiness polling, slot release,
and per-sender FIFO order match repeatedtry_recvcalls. Requires yring
0.3.18.
Fixed
- MPMC receivers return consumed ring slots once they take a lane's whole
prefetched window, not only aftermin(64, capacity)values. A lane whose
sender keeps few values outstanding no longer reportsFullbelow its
capacity.
fanring 0.3.6
fanring-v0.3.6 chore: Release package fanring version 0.3.6
yring 0.3.17
yring-v0.3.17 chore: Release package yring version 0.3.17
fanring 0.3.5
fanring-v0.3.5 chore: Release package fanring version 0.3.5
v0.3.4
- MPSC
Receiver::release_consumedpublishes consumed slots across sender
lanes and notifies blocked senders, including after partial receive batches. - MPSC
Receiver::recv_batch_intoappends a bounded batch to a caller-owned
vector, waits only for the first value, and releases consumed slots before
returning.