Skip to content

Conversation

@scottmarchant
Copy link
Collaborator

@scottmarchant scottmarchant commented Dec 1, 2025

Overview

This PR shows all changes planned for the initial release of NIOAsyncRuntime, which is an re-implementation of the portions of NIOPosix used by the PassiveLogic dependency tree, using Swift Concurrency.

Below is a list of all changes included in the initial implementation of NIOAsyncRuntime.

CI and testing setup:

Implementations:

Tests:

Note that these tests are almost direct ports of the tests in NIOPosix for the corresponding functionality.

PR Dependencies:

main
  └─ #3 Set up package scaffolding and CI
     └─ #11 Implement AsyncEventLoopExecutor
        └─ #4 Implement AsyncEventLoop and MultiThreadedEventLoopGroup
           └─ #5 Add NIO test utilities
              ├─ #6 Add AsyncEventLoop and executor tests
              ├─ #7 Add MultiThreadedEventLoopGroup tests
              ├─ #8 Implement concurrency-backed NIOThreadPool
              │  └─ #9 Add NIOThreadPool tests
              └─ #10 Add EventLoopFuture parity tests

Tests performed

In addition to the unit tests implemented, the changes have also been tested in real-world application by running GraphManager and QuantumProjectManager in the browser to migrate database schemas, connect with our server, and pull data from a real user account.

…nc-runtime and target/library name NIOAsyncRuntime
… Swift Concurrency and the AsyncEventLoopExecutor. Forms a key foundation for several vapor repositories to use NIO without using NIOPosix. This enables a large amount of wasm compilation for packages that currently consume NIOPosix.
…st majority of these tests were ported from NIOPosix tests for SelectableEventLoop, which AsyncEventLoop replaces.
…he vast majority of these tests were ported from NIOPosix tests for its own MultiThreadedEventLoopGroup. These tests ensure basic feature parity between the two different implementations.
@@ -0,0 +1,44 @@
name: Pull request
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't merge this PR. It is meant to show all changes together

@scottmarchant scottmarchant changed the title Initial Implementation Overview NIOAsyncRuntime Implementation Overview Dec 2, 2025
@scottmarchant scottmarchant changed the title NIOAsyncRuntime Implementation Overview Overview of Entire NIOAsyncRuntime Implementation Dec 2, 2025
@@ -0,0 +1,44 @@
name: Pull request

on:
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please don't review this PR. Review the small PR's. This larger PR is just an aid in case seeing everything at once is helpful.

@scottmarchant scottmarchant self-assigned this Dec 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants