先日のMessagePackハッカソンで議論した、MessagePack IDL の仕様についてまとめます。 実際のユースケースを元に、大規模な分散アプリケーションまでカバーできる実践的な仕様を目指しました。 基本的な文法 IDLは、大きく分けて 型の定義 と サービスの定義 に分かれます。 型の定義では、RPCでやりとりしたりログに保存したりするメッセージの構造を定義します。この構造の定義から、各言語のクラス定義や、シリアライズ・デシリアライズを行うコードを生成したりするのが、IDL処理系の役割の一つです。 サービスの定義では、RPCのインタフェースを定義します。この定義からクライアントやサーバのコードを生成します。 コメント # これはコメント // これもコメント /* これもコメント /* ネストしても */ 良いではないか */ 名前空間 名前空間は、Javaではパッケージ名、C