v0.3.0-rc1
This is the first release candidate for version 0.3.0 of Tardy. This will ideally be a good place for development to stabilize around Frames and is intended to be a bug-fixing point before the official 0.3.0 release.
This changes a lot in general about the runtime that will be detailed below.
- Callbacks removed in favor of Coroutines (called Frames internally), allowing for much nicer composition across the board.
- New Filesystem API (including the new
FileandDirstruct that have pretty good inter-op with the standard library equivalents) - New Socket API (including the new
Socketstruct). This officially supports TCP, UDP and Unix. It also properly supports getting address information about sockets now. - Switch from the
busy_looptopollon POSIX-compliant systems, providing better cross-platform support. - Support for unlimited max tasks for workloads with an unknown number of maximum tasks. This is supported through changes to the underlying Pool implementation.
- Switched
AsyncIOstruct to utilize aVTableapproach, better standardizing the implementation. - Async I/O implementations now provide the runtime with a list of Async capabilities. If an action is queued that is not supported by the Async I/O backend, it is handled through a non-blocking yielding loop.
Streamabstraction for I/O.- EXPERIMENTAL: Added triggers, allowing for tasks to suspend until they are woken up by a different task in the future.
- EXPERIMENTAL: Added a SPSC Channel, allowing for crosstask and crossthread communication.
What's Changed
- Async Overhaul (Frames + Poll) by @mookums in https://github.com/mookums/tardy/pull/7
- library only compiles when the zig compiler versions match by @Torbatti in https://github.com/mookums/tardy/pull/8
New Contributors
- @Torbatti made their first contribution in https://github.com/mookums/tardy/pull/8
Full Changelog: https://github.com/mookums/tardy/compare/v0.2.1...v0.3.0-rc1