API サーバー層を有効にすると、AkkEngine の操作を別プロセスやネットワーク越しに受け付けられます。これは高レベル API ではなく、低レベル API の公開境界です。呼び出し側はバイト列のキーとバイト列の値を送り、サーバーはそれを同じ AkkEngine の操作へ渡します。
別プロセス、別言語ランタイム、テストツール、またはサービス境界からエンジンへアクセスしたい場合に使います。同じ C++ プロセス内で完結するアプリケーションなら、AkkEngine を直接呼ぶほうが単純で、プロトコル処理のオーバーヘッドも避けられます。
API サーバーのコードは akkara/akkserver/ にあり、AGPLv3 で別ライセンスになっています。サーバー有効ビルドを配布する場合は、この境界を確認してください。
目的別に読む
Section titled “目的別に読む”| 目的 | ページ |
|---|---|
| サーバーを起動してクライアントから呼ぶ | API サーバーの使い方 |
| 通信方式、フレーミング、制限値、実行時構造を理解する | API サーバーのアーキテクチャ |
通信方式の概要
Section titled “通信方式の概要”| 通信方式 | 向いている用途 |
|---|---|
| HTTP | 手元での確認、ローカルツール、スクリプト、簡単なサービス連携。 |
| TCP | AK5 バイナリフレームを直接実装できる、高スループット向けクライアント。 |
| gRPC | gRPC バックエンドを含むビルドで、生成クライアントやサービス定義を使いたい場合。 |
どの通信方式でも、基本はバイト列指向のキー/値操作です。HTTP API も一般的な JSON REST API ではありません。読み取りは生のバイト列を返し、カウンタは little-endian のバイナリ値で返り、多くの更新系エンドポイントは 204 No Content を返します。