オープンソース
GoとLinux向けの低レイテンシI/Oスタックを、MITライセンスのオープンソースとして code.hybscloud.com で公開しています。各パッケージは個別導入もでき、カーネルに近いサービス、ランタイム、ネットワークソフトウェアの基盤として利用できます。
設計の中心にあるのは、明示的なステップ境界と、completed(完了)・would-block(待機必要)・more(後続あり)という共通アウトカムモデルです。このモデルはLinuxカーネルの操作からユーザーコードまで一貫しており、リトライ、バックオフ、バッチング、ディスパッチを各層で明示的に制御できます。
このスタックで提供するもの
- システムコール、アトミック操作、ロック、ファイルディスクリプタ管理のためのカーネル直結プリミティブ
- Linux 6.18+向けのノンブロッキング、マルチショット、ゼロアロケーションI/Oビルディングブロック
- 完了駆動システム向けのロックフリーキュー、プロトコル部品、ディスパッチ層
- ソースコードとGoモジュールドキュメントを含むMITライセンスの公開パッケージ
基盤レイヤー
- zcall は、プラットフォーム別アセンブリによるシステムコールプリミティブを提供します。
- spin は、FAA+TTASノンフェアスピンロックと適応型スピンウェイトを実装し、マイクロ秒未満のクリティカルセクションに対応します。
- atomix は、128ビットアトミックやキャッシュラインパディング対応を含む、C11メモリオーダリング付きのアトミック操作を提供します。
- dwcas は、ABA安全なロックフリーアルゴリズム向けに、ポータブルな128ビットcompare-and-swapを提供します。
I/Oセマンティクス
- iox は、
ErrWouldBlockとErrMoreを軸に、GoのioパッケージへノンブロッキングかつマルチショットのI/Oセマンティクスを拡張します。 - iofd は、アトミックなライフサイクル管理とiox互換のRead/Writeを備えたファイルディスクリプタ抽象化を提供します。
- iobuf は、インデックスベースプーリングとページアライメントを備えたロックフリーバウンドバッファプールを提供します。
並行処理
- lfq は、SPSC・MPSC・SPMC・MPMCパターン向けのバウンドロックフリーFIFOキューを、ゼロアロケーション高速パスで実装しています。
計算モデル
- kont は、限定継続と代数的エフェクトをGoへ導入し、アロケーションフリーのエフェクトハンドリングを提供します。
- cove は、隠れたグローバル変数やスレッドローカルに頼らず、サスペンション境界を越えて環境コンテキストを運搬します。
カーネルI/Oとネットワーク
- uring は、Linux 6.18+向けの純粋なGo io_uringライブラリで、65のオペレーションをゼロアロケーションのサブミット・リープパスで提供します。
- sock は、TCP、UDP、SCTP、Unixドメイン、rawソケット向けのゼロアロケーションソケットプリミティブを提供します。
プロトコル
- sess は、ロックフリーかつ完了駆動の通信向けに、代数的エフェクトによるセッション型プロトコルを実装します。
- framer は、ストリームトランスポート上でメッセージ境界を保全するポータブルなメッセージフレーミングを提供します。
実行モデル
- takt は、代数的エフェクトを
completed・would-block・moreに写像し、ブロッキング、ステッピング、イベントループの各実行モードを横断する抽象プロアクターディスパッチエンジンです。
ソースコードとドキュメント
ソースコードとGoモジュールドキュメントは code.hybscloud.com で公開しています。