Releases: tardy-org/tardy
v0.3.0-rc2
This is the second release candidate for version 0.3.0 of Tardy. This will be the last release before Zig 0.14. v0.3.0 will be delayed until Zig 0.14 comes.
Changes with v0.3.0-rc2:
Socket
now provides aninit_with_address
fn, allowing creating with just astd.net.Address
and aKind
.io_uring
backend now properly handles INTR signals by just re-queuing job,Reader
andWriter
interfaces provided for theSocket
andFile
type, allowing for better integration with other libraries that aren't natively built for Tardy.- EXPERIMENTAL: improved performance on SPSC channel.
- EXPERIMENTAL: SPSC minimum channel size is now 2.
Below are the changes that v0.3.0-rc1 introduced:
- Callbacks removed in favor of Coroutines (called Frames internally), allowing for much nicer composition across the board.
- New Filesystem API (including the new
File
andDir
struct that have pretty good inter-op with the standard library equivalents) - New Socket API (including the new
Socket
struct). This officially supports TCP, UDP and Unix. It also properly supports getting address information about sockets now. - Switch from the
busy_loop
topoll
on 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
AsyncIO
struct to utilize aVTable
approach, 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.
Stream
abstraction 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
Full Changelog: v0.3.0-rc1...v0.3.0-rc2
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
File
andDir
struct that have pretty good inter-op with the standard library equivalents) - New Socket API (including the new
Socket
struct). This officially supports TCP, UDP and Unix. It also properly supports getting address information about sockets now. - Switch from the
busy_loop
topoll
on 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
AsyncIO
struct to utilize aVTable
approach, 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.
Stream
abstraction 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 #7
- library only compiles when the zig compiler versions match by @Torbatti in #8
New Contributors
Full Changelog: v0.2.1...v0.3.0-rc1
v0.2.1
v0.2.0
This update focused on cleaning up a variety of sharp edges as well as various features.
- Added
queue_connect
for connecting to different sockets. (42e61e3) - Added an abstracted
wrap
andunwrap
allowing for more complex types to be converted to an integer representation. (e54daae) - Added
entry_in_new_thread
allowing for the runtime to be started and managed in a different thread, making embedding of Tardy in applications easier. (9207187) - Added proper error handling with callbacks being handed a result type, allowing for errors to be standardized and captured directly without having to determine from integer types. (9d0b398)
- Fixed a race condition that would sometimes occur within the
aio.append
during startup. (32b89f2) - Made
io_uring
flags conditional on kernel version. (a4144a3)
Full Changelog: v0.1.0...v0.2.0
v0.1.0
This is an initial release of Tardy. Supported OSes include Mac, Linux and Windows.
This provides:
- Support for
io_uring
- Support for
epoll
- Support for
kqueue
- Support for POSIX Fallback
busy_loop
- Filesystem Operations (through
runtime.fs
) - Network Operations (through
runtime.net
)
Full Changelog: https://github.com/mookums/tardy/commits/v0.1.0