BT

データ交換フォーマットCap’n ProtoがWindowsサポートなど新機能を追加

| 作者: Sergio De Simone フォローする 17 人のフォロワー , 翻訳者 h_yoshida フォローする 1 人のフォロワー 投稿日 2017年6月21日. 推定読書時間: 2 分 |

原文(投稿日:2017/05/09)へのリンク

前回のリリースから2年半、データ交換フォーマットとRPCシステムのCap’n Protoがバージョン0.6となって、Windowsのサポートやセキュリティ強化などが追加された。

作者のKenton Varda氏によると、リリースが大きく遅れたのは開発の遅延によるものではない。開発自体は常に予定より進んでいたのだが、親プロジェクトであるSandstorm.ioのWindows移植の安定化作業の優先度が低かったのだ。Microsoftのコンパイラが最新のC++サポートをキャッチアップしたことで、シリアライゼーションや動的API、スキーマパーザ、(I/O完了ポートを使用した)非同期I/0フレームワーク、RPC、ツールといった機能の移植は容易になった。加えて、Cap'n Protoの開発チームは継続的インテグレーションのセットアップも完了している。Windowsポートの状態を維持する上で役に立つはずだ。

Windowsフルサポートの他、最新バージョンのCap ‘Protoでは、潜在的な脆弱性に対して安全性を確保するための実装変更がいくつか実施されている。コンパイル時に整数オーバーフロー検出などの包括的なテストを行なう、ポインタ検証の改善などがこれに含まれる。

バージョン0.6では、Cap’n Protoのエコシステムに新たに2つの便利なものが加わった。

  • libcapnp-json - JSONベースのフロントエンドとCap’n Protoベースのバックエンドとの統合を容易にすることを目的とした、JSONとCap’n Protoとの双方向コンバータ。
  • libkj-http - 非同期I/Oをベースとした最小限のHTTPライブラリで、現在も活発な開発が続けられている。

Cap'n Protoは、メモリ内でのメッセージのエンコードとデコードの必要性を排除することにより、JSONやProtocol Bufferといった一般的なフォーマットよりも優れたパフォーマンスの実現を目指すデータ交換フォーマットである。これはコンパイラのように、しかしプラットフォームに依存しない方法で、データをバイナリ形式で格納することによって実現される。作成者のKenton Varda氏は、Google在籍時にProtocol Buffersを開発した人物だ。

Cap’n Protoは、長年にわたってProtobusの開発を経験し、ユーザのフィードバックを聞いて、よりよいものにする方法を考えた結果です。

Cap'n Protoは、フォーマットに新たなフィールドが追加された時に、下位互換性保証を支援するための仕組みも備えている。その他の主な機能としては、内部オブジェクト全体が現れる前に外部オブジェクトを処理するためのインクリメンタルなメッセージ処理機能、メッセージ全体が受信される前から任意のフィールドにランダムアクセスする機能、生成コードとランタイムライブラリのサイズ縮小などがある。

 
 

この記事を評価

Adoption Stage
スタイル
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT