Zig で書かれた最小限のクロスプラットフォームの高性能非同期 I/O ライブラリ。
bind 、 listen 、 connect 、 accept read 、 recv 、 recvFrom write 、 send 、 sendTo bind 、 listen 、 connect 、 accept read 、 recv 、 recvFrom write 、 send 、 sendTo Notifier 、I/O イベントの完了、または登録されたファイル記述子/ハンドルの読み取り/書き込み準備完了を通知します。
Notifier I/O イベントの完了を報告する場合、Windows の I/O 完了ポートなど、オペレーティング システム内のプロアクター ベースの I/O 通知層をラップアラウンドするように指定されています。
Notifier登録されたファイル記述子/ハンドルの読み取り/書き込み準備状況を報告する場合、Linux の epoll や Darwin ベースのオペレーティング システムの kqueue など、オペレーティング システムのリアクター ベースの I/O 通知層をラップアラウンドするように指定されます。 。
Notifierの目的は、スレッド プール/スケジューラ (例: kprotty/zap) によって再開される中断された非同期関数フレームをディスパッチすることによって、リアクター/プロアクター ベースの I/O イベントの通知時に非同期 I/O システムコールの実行を駆動することです。 )。
Handleの実装はNotifier実装に固有ですが、全体的にはプログラム内のファイル記述子/ハンドルをラップアラウンドして表します。
Notifier実装に応じてHandleの実装が該当し、 Handleを介して非同期 I/O システムコールを駆動するために必要な状態はHandle内に保持されます。
例としては、ファイル記述子/ハンドルの書き込み/読み取りの準備ができたという通知を受信したときに再開される、中断された非同期関数フレームの侵入型リンク リストがあります。