オープンソース

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 は、ErrWouldBlockErrMoreを軸に、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 は、代数的エフェクトをcompletedwould-blockmoreに写像し、ブロッキング、ステッピング、イベントループの各実行モードを横断する抽象プロアクターディスパッチエンジンです。

ソースコードとドキュメント

ソースコードとGoモジュールドキュメントは code.hybscloud.com で公開しています。