Frage

Ich suche in einen Mechanismus für serialize Daten über einen Socket oder Shared-Memory in einem sprachunabhängigen Mechanismus übergeben werden. Ich bin nur ungern XML verwenden, da diese Daten sehr strukturiert sein wird, und die Codierung / Decodierung Geschwindigkeit ist von entscheidender Bedeutung. eine gute C-API hat, die liberal lizenziert ist, ist wichtig, aber idealerweise sollte es Unterstützung für eine Tonne von anderen Sprachen sein. Ich habe unter Googles Protocol Buffers und ASN.1 . Bin ich auf dem richtigen Weg? Gibt es etwas Besseres? Soll ich nur meine eigene gepackten Struktur implementieren und nicht für einigen Standard aussehen?

War es hilfreich?

Lösung

Ihre Anforderungen gegeben, würde ich gehen mit Google Protocol Buffers. Es klingt wie es ideal für Ihre Anwendung geeignet ist.

Andere Tipps

Sie könnten XDR betrachten. Es verfügt über einen RFC rel="nofollow. Ich habe es benutzt und nie mit ihm keine Performance-Probleme hatte. Es wurde in ONC RPC und hat ein und kommt mit einem Tool namens rpcgen verwendet. Es ist auch einfach, einen Generator selbst zu erstellen, wenn Sie wollen einfach nur Daten serialisiert werden (das ist, was ich tun für die Portabilität Gründen endete, nahm mich einen halben Tag). Es ist eine Open-Source-C-Implementierung, aber es kann bereits in einer Systembibliothek, so dass Sie würde die Quellen nicht benötigen.

ASN.1 schien immer ein wenig zu mir barock, aber auf Ihrem tatsächlichen Bedarf abhängig könnte besser geeignet sein, da es einige Einschränkungen XDR ist.

Ich wollte nur in ASN.1 in diese Mischung werfen. ASN.1 ist ein Format, Standard, aber es gibt Bibliotheken für die meisten Sprachen, und die C-Schnittstelle über asn1c ist viel sauberer als die C-Schnittstelle für Protokollpuffer .

JSON ist wirklich mein Favorit für diese Art von Sachen. Ich habe keine Erfahrung mit binären Sachen in der es aber. Bitte posten Sie Ihre Ergebnisse, wenn Sie über die Verwendung von JSON planen!

Thrift ein binäres Format ist von Facebook erstellt. Hier ist ein Vergleich mit Google Protokoll Puffer.

Schauen Sie sich hessischen

Es gibt auch Binary XML aber es scheint nicht noch stabilisiert. Der Artikel I Link zu gibt eine Reihe von Verbindungen, die von Interesse sein könnten.

Eine weitere Option ist SNAC / TLV , die von AOL verwendet wird, in seiner Oscar / AIM-Protokoll.

Überprüfen Sie auch Muscle . Während es durchaus ein wenig tut, serialisiert es in ein binäres Format.

Ein paar Dinge Sie beachten müssen,

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

ASN.1-Parser ist das gut für binäre Repräsentationen der beste Teil ASN.1 ist eine gut etablierte Technologie, die weit innerhalb der ITU-T verwendet wird und außerhalb. Die Notation wird durch eine Reihe von Software-Anbietern unterstützt wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top