最近(2015年1月)Microsoftがオープンソース化 Bond 、スキーマ化されたデータを操作するためのフレームワーク。多くの点で、Googleの Protocol Buffers に似ています。
2つの間の最大の違いは何ですか?長所と短所は何ですか。つまり、どちらか一方を使用したいが、もう一方は使用したくないという状況ですか。もちろん、私は他のプロジェクトや既存のAPIとの一貫性のような明白なことについて話しているのではなく、両方のライブラリの機能について話しているのです。例を挙げると、ボンドには bonded<T>
これは、私が正しく覚えていれば、プロトコルバッファに対応するものがありません。
一般に、Bondはより良い型システムを持ち、複数のプロトコルをサポートしています。
特に、長所は次のとおりです。
vector<T>
、map<T>
、list<T>
bonded<T>
)短所:
fixed32
およびfixed64
。oneof
)いくつかのテストを行いましたが、BondとProtoBufバイナリ形式の単純なメッセージのサイズはほぼ同じであるようです。 BondとC#ProtoBufライブラリを使用してシリアル化と逆シリアル化の時間を比較しました。私の場合、Bondの方が少しパフォーマンスが良く、私の GitHubのソースコード
要約すると、いくつかの複雑なタイプのデータを操作する場合、または同じデータを異なる形式で表現する必要がある場合は、Bondを使用する方が良いと思います。バイナリとして保存しますが、JSONなどとして公開します。