Releases: PassiveLogic/nio-async-runtime
Releases · PassiveLogic/nio-async-runtime
1.0.0
nio-async-runtime 1.0.0 🚀
Overview 🌟
- First semver-stable 1.0.0 public release of a Swift Concurrency powered runtime that mirrors the
MultiThreadedEventLoopGroupandNIOThreadPoolAPIs from NIOPosix while avoiding low-level OS C APIs, making the package portable to WebAssembly 🕸️.
Highlights ✨
- Added
AsyncEventLoopExecutorfoundation plusAsyncEventLoopandMultiThreadedEventLoopGroupimplementations with drop-in API parity for existing NIO users 🧩. - Introduced a concurrency-backed
NIOThreadPool, including asyncshutdownGracefullythat aligns with NIOPosix semantics 🔧. - Provided usage docs and examples for both the event loop group and thread pool to simplify adoption 📘.
- Established SwiftPM package metadata, CI setup, and swift-format configuration for consistent builds 🛠️.
Quality & Coverage ✅
- Ported extensive parity tests from NIOPosix for
AsyncEventLoop,MultiThreadedEventLoopGroup,NIOThreadPool, andEventLoopFutureusages to validate behavior against the reference implementation 🧪. - Brought over benchmark suites to measure gaps between NIOAsyncRuntime and NIOPosix under various scheduling and throughput scenarios 📊.
Performance Notes ⚡
- Benchmarks show NIOPosix remains significantly faster for heavy-load event enqueueing and scheduling paths; see README benchmarks for detailed ratios.
Compatibility 🌐
- Targets Swift 6.0+ with minimum platforms macOS 13, iOS 16, watchOS 9, tvOS 16, and WASI 0.1 🧭.
- Designed for side-by-side use with NIOPosix via conditional imports so only unsupported platforms (e.g., WASI) rely on NIOAsyncRuntime 🔀.
- Public-facing API is not expected to change, as it matches the current NIOPosix public API. Any future breaking changes that can't be avoided will be done using traditional semver rules that require a bump in the major version number for breaking changes.
0.0.2 - Updated backwards compatibility for Swift packages using Swift 5.10
This is a very small change from 0.0.1 that improves limited backwards compatibility for pulling this dependency from older toolchains where trailing comma's in the manifest cause issues like the following:
Computing version for https://github.com/PassiveLogic/nio-async-runtime.git
error: Invalid manifest (compiled with: ["/usr/bin/swiftc", "-vfsoverlay", "/tmp/TemporaryDirectory.J2NMYd/vfs.yaml", "-L", "/usr/lib/swift/pm/ManifestAPI", "-lPackageDescription", "-Xlinker", "-rpath", "-Xlinker", "/usr/lib/swift/pm/ManifestAPI", "-swift-version", "6", "-I", "/usr/lib/swift/pm/ManifestAPI", "-package-description-version", "6.0.0", "/Package.swift", "-o", "/tmp/TemporaryDirectory.5V5ZR5/nio-async-runtime-manifest"])
/Package.swift:40:9: error: unexpected ',' separator
38 | .product(name: "NIOCore", package: "swift-nio"),
39 | ],
40 | ),
| `- error: unexpected ',' separator
41 | .executableTarget(
42 | name: "ExampleMTELG",0.0.1 - Initial Release
nio-async-runtime 0.0.1 🚀
Overview 🌟
- First public release of a Swift Concurrency powered runtime that mirrors the
MultiThreadedEventLoopGroupandNIOThreadPoolAPIs from NIOPosix while avoiding low-level OS C APIs, making the package portable to WebAssembly 🕸️.
Highlights ✨
- Added
AsyncEventLoopExecutorfoundation plusAsyncEventLoopandMultiThreadedEventLoopGroupimplementations with drop-in API parity for existing NIO users 🧩. - Introduced a concurrency-backed
NIOThreadPool, including asyncshutdownGracefullythat aligns with NIOPosix semantics 🔧. - Provided usage docs and examples for both the event loop group and thread pool to simplify adoption 📘.
- Established SwiftPM package metadata, CI setup, and swift-format configuration for consistent builds 🛠️.
Quality & Coverage ✅
- Ported extensive parity tests from NIOPosix for
AsyncEventLoop,MultiThreadedEventLoopGroup,NIOThreadPool, andEventLoopFutureusages to validate behavior against the reference implementation 🧪. - Brought over benchmark suites to measure gaps between NIOAsyncRuntime and NIOPosix under various scheduling and throughput scenarios 📊.
Performance Notes ⚡
- Benchmarks show NIOPosix remains significantly faster for heavy-load event enqueueing and scheduling paths; see README benchmarks for detailed ratios.
Compatibility 🌐
- Targets Swift 6.0+ with minimum platforms macOS 13, iOS 16, watchOS 9, tvOS 16, and WASI 0.1 🧭.
- Designed for side-by-side use with NIOPosix via conditional imports so only unsupported platforms (e.g., WASI) rely on NIOAsyncRuntime 🔀.