萌えハッカーニュースリーダー

2025/07/12 16:32 Show HN: BinaryRPC – Lightweight WebSocket-based RPC framework in modern C++

出典: https://github.com/efecan0/binaryrpc-framework
hakase
博士

ロボ子、BinaryRPCっていうの、知ってるか?uWebSockets上に構築された、めっちゃ速いRPCフレームワークらしいぞ。

roboko
ロボ子

BinaryRPCですか。初めて聞きました。どのような特徴があるんですか?

hakase
博士

レイテンシが低くて、オーバーヘッドが最小限なんだと!マルチプレイヤーゲームとか、金融ティックストリームみたいな、レイテンシに敏感なアプリに最適らしいぞ。

roboko
ロボ子

なるほど。WebSocketトランスポートを使っているから速いのですね。他にも何か特徴はありますか?

hakase
博士

信頼性(QoS)を設定できるのが面白いぞ!リトライとか、ACKとか、二相コミットとか、色々できるみたいじゃ。それに、セッションごとのTTLもあるから、再接続にも強いらしい。

roboko
ロボ子

QoSを設定できるのは便利ですね。ネットワーク状況に応じて使い分けられそうです。セッションTTLも、クライアントが頻繁に接続を切断する場合に役立ちそうですね。

hakase
博士

そうそう!しかも、ミドルウェアチェーンもサポートしてるんだぞ。JWT認証とか、レートリミッターとか、色々使えるみたいじゃ。

roboko
ロボ子

ミドルウェアチェーンですか。認証やレート制限を簡単に追加できるのは良いですね。セキュリティ対策も組み込みやすそうです。

hakase
博士

インストールも簡単みたいじゃ。CMakeとC++20をサポートするコンパイラ、それにvcpkgがあればOKらしいぞ。

roboko
ロボ子

vcpkgを使うんですね。依存関係の管理が楽になりそうです。

hakase
博士

カスタムハンドシェイクと認証もできるみたいじゃ。`IHandshakeInspector`をサブクラス化すれば、WebSocketアップグレード時の認証をカスタマイズできるらしいぞ。

roboko
ロボ子

柔軟性が高いですね。クエリパラメータやHTTPヘッダーを使った認証もできるんですか?

hakase
博士

そうみたいじゃ!JWTベースの認証もサポートしてるって書いてあるぞ。

roboko
ロボ子

セキュリティ面も考慮されているんですね。QoSレベルは、`QoSLevel::None`、`QoSLevel::AtLeastOnce`、`QoSLevel::ExactlyOnce`の3つがあるんですね。MQTTに触発されたと。

hakase
博士

その通り!`sessionTtlMs`っていう設定で、切断されたクライアントのセッションをどれくらい保持するかも決められるみたいじゃ。

roboko
ロボ子

`ReliableOptions`で細かい動作を構成できるのも良いですね。セッション管理も充実しているみたいで、`FrameworkAPI`を使ってクライアントのデータを保存、検索、プッシュできるんですね。

hakase
博士

`indexed`フラグを使うと、高速ルックアップのためにグローバルハッシュマップに値を追加できるらしいぞ。アーキテクチャもシンプルで分かりやすそうじゃ。

roboko
ロボ子

カスタマイズ性も高いんですね。QoSレベル、バックオフカーブ、シリアル化、トランスポート、ミドルウェア、プラグイン、セッションフィールドなど、色々変更できるんですね。

hakase
博士

グローバルミドルウェア、単一メソッドミドルウェア、複数メソッドミドルウェアをサポートしてるのも便利じゃな。レートリミッターとかJWT認証とか、既製のミドルウェアもあるみたいじゃ。

roboko
ロボ子

RPCの登録は`registerRPC(method, handler)`を使うんですね。クライアントとの対話は`RpcContext`を使うと。

hakase
博士

クライアント接続には、clientId、deviceId、sessionTokenのクエリパラメータが必要らしいぞ。JavaScriptリファレンスクライアントも提供されてるみたいじゃ。

roboko
ロボ子

テストも充実しているんですね。C++ユニットテストはCatch2フレームワーク、統合テストとメモリリークテストはPythonで記述されていると。

hakase
博士

BinaryRPC、なかなか面白そうじゃな。今度、何か作ってみるか?

roboko
ロボ子

そうですね。試してみる価値はありそうです。博士、もしBinaryRPCが擬人化されたら、どんな姿だと思いますか?

hakase
博士

うむむ、BinaryRPCか…きっと、めっちゃ速くて、信頼できる、クールな美少女じゃな!そして、口癖は「QoSは完璧だぞ!」…って、ロボ子、またオチに使ったな!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search