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
内に保持されます。
例としては、ファイル記述子/ハンドルの書き込み/読み取りの準備ができたという通知を受信したときに再開される、中断された非同期関数フレームの侵入型リンク リストがあります。