Releases: frostyplanet/crossfire-rs
2.1.7 remove futures dep
[2.1.7] - 2025-11-08
Changed
- Depend on
futures-corecrate instead offutures(issue #45)
[2.1.6] - 2025-10-10
Changed
- Delete the code probing tokio (to prevent an issue in cargo 1.87-1.90 triggering the code without tokio feature enable)
[2.1.5] - 2025-10-06
Fixed
- Remove doc_auto_cfg because removal by rust
v2.1.4 Minor speed up
Full Changelog: v2.1.3...v2.1.4
[2.1.4] - 2025-10-01
Changed
-
Adjust backoff for Arm, increase size 1 speed
-
async: Use try_change_state() to reset init instead of get_state(), minor improvement on x86 bounded_100_async_n_n.
v2.1.3 smol support
Full Changelog: v2.1.0...v2.1.3
[2.1.3] - 2025-09-26
Added
-
Add send_with_timer() and recv_with_timer() for other async runtime (eg. smol).
-
Add test and benchmark with smol.
2.1.0 refactor
[2.1.0] - 2025-9-21
Changed
-
Refactor to drop dependency of crossbeam-channel, the underlayering is modified version of crossbeam-queue.
-
Bounded channel speed receive massive boost.
-
AsyncTx can convert back and forth with Tx, and AsyncRx can convert back and forth with Rx.
-
Optimise for VM machine that only have 1 cpu.
-
Use MaybeUninit to optimise the moving of large blob message for bounded channel, in nearly full scenario.
-
Rename ReceiveFuture to RecvFuture, ReceiveTimeoutFuture to RecvTimeoutFuture.
Removed
- Remove AsyncTx::send_blocking() and AsyncRx::recv_blocking(), instead, you can use type conversion into Tx/Rx.
2.0.26
Full Changelog: v2.0.25...v2.0.26
[2.0.26] - 2025-08-30
Fixed
- waker_registry: Fix hang detect by miri in cancel_waker(), issue #34, bug introduced from v2.0.20
- Added miri to the test workflow
v2.0.25
Full Changelog: v2.0.24...v2.0.25
[2.0.25] - 2025-08-29
Fixed
- More strict with the waker status, issue #34 (use SeqCst in reset_init)
2.0.24
Full Changelog: v2.0.22...v2.0.24
More strict with the waker status:
- Change is_disconnected() to SeqCst
- Change get_state() to SeqCst
- Deal with the failure of commit_waiting(), (waker is waked before returning Poll::Pending)
2.0.22
Full Changelog: v2.0.20...v2.0.22
- Add clone_to_vec() for senders and receivers
- Fix typo in AsyncSink drop, might leave its waker not clear. (which is not a big deal)
- RegistryMulti: Fix fire defend against infinte loop (for using poll function of sink / stream )
2.0.20
Added
-
AsyncTxTrait: Add Into<AsyncSink>
-
AsyncRxTrait: Add Into<AsyncStream>
Fixed
-
Change the behavior of AsyncSink::poll_send() and AsyncStream::poll_item(), to make sure
stream/sink wakers are notified, preventing deadlock from happening if user wants to cancel the operation.
Add explanation to the document. -
Defend against infinite loop when waking up all wakers, given the change of sink/stream.