16

言語に依存しないメカニズムで、ソケットまたは共有メモリを介してデータをシリアル化するメカニズムを検討しています。このデータは非常に構造化されており、エンコード/デコードの速度が非常に重要であるため、XMLの使用には消極的です。自由にライセンスされた優れたCAPIを使用することは重要ですが、理想的には、他の多くの言語をサポートする必要があります。私はグーグルのプロトコルバッファASN.1を見てきました。私は正しい方向に進んでいますか?もっと良いものはありますか?独自のパック構造を実装するだけで、標準を探す必要はありませんか?

4

10 に答える 10

11

あなたの要件を考えると、私はGoogleProtocolBuffersを使います。アプリケーションに最適なようです。

于 2008-09-27T20:47:58.147 に答える
3

XDR を考慮することができます。RFCがあります。私はそれを使用しましたが、パフォーマンスの問題は一度もありませんでした。これは ONC RPC で使用され、rpcgen というツールが付属しています。また、データをシリアル化したいだけの場合は、自分でジェネレーターを作成するのも簡単です (これは、移植性の理由から最終的に行ったもので、半日かかりました)。オープン ソースの C 実装がありますが、既にシステム ライブラリに含まれている可能性があるため、ソースは必要ありません。

ASN.1 は常に少しバロックに見えましたが、XDR にはいくつかの制限があるため、実際のニーズによっては ASN.1 の方が適切かもしれません。

于 2008-09-27T21:21:25.460 に答える
3

このミックスに ASN.1 を投入したかっただけです。ASN.1 はフォーマット標準ですが、ほとんどの言語用のライブラリがあり、asn1cを介したC インターフェイスは、プロトコル バッファー用の C インターフェイスよりもはるかにクリーンです。

于 2008-09-29T17:12:19.553 に答える
2

JSONは、この種のもので本当に私のお気に入りです。ただし、バイナリに関する経験はありません。JSON の使用を計画している場合は、結果を投稿してください。

于 2008-09-27T23:14:11.977 に答える
2

Thriftは、Facebook によって作成されたバイナリ形式です。 これは、Google プロトコル バッファとの比較です。

于 2008-09-27T23:46:44.113 に答える
1

ヘシアンをチェックしてください

于 2008-09-27T20:49:14.790 に答える
1

Muscleもチェックしてください。かなりのことを行いますが、バイナリ形式にシリアル化します。

于 2008-09-28T00:12:13.850 に答える
1

もう 1 つのオプションは、AOL が Oscar/AIM プロトコルで使用するSNAC/TLVです。

于 2008-09-27T22:50:30.130 に答える
1

Binary XMLもありますが、まだ安定していないようです。私がリンクしている記事には、興味深いかもしれないリンクがたくさんあります。

于 2008-09-27T22:03:37.670 に答える
0

考慮する必要があることはほとんどありません

1. Storage
2. Encoding Style (1 byte 2 byte)
3. TLV standards

ASN.1 パーサーは、バイナリ表現に適しています。ASN.1 は、ITU-T 内外で広く使用されている確立されたテクノロジです。この表記法は、多くのソフトウェア ベンダーによってサポートされています。

于 2013-09-10T06:04:17.993 に答える