Quel est le meilleur moyen de sérialiser les données dans un format binaire indépendant de la langue?

StackOverflow https://stackoverflow.com/questions/144435

Question

Je cherche un mécanisme permettant de sérialiser des données à transmettre sur un socket ou une mémoire partagée dans un mécanisme indépendant du langage. Je suis réticent à utiliser XML car ces données seront très structurées et la vitesse d'encodage / décodage est essentielle. Avoir une bonne API C librement licenciée est important, mais idéalement, une tonne d’autres langues devraient être supportées. J'ai consulté les tampons de protocole de Google et ASN.1 . Suis-je sur la bonne voie? Y a-t-il quelque chose de mieux? Devrais-je simplement mettre en œuvre ma propre structure compacte et ne pas rechercher une norme?

Était-ce utile?

La solution

Compte tenu de vos besoins, j'opterais pour les tampons de protocole Google. Cela semble parfaitement adapté à votre application.

Autres conseils

Vous pourriez envisager XDR. Il dispose d'un RFC . Je l'ai utilisé et je n'ai jamais eu de problèmes de performances avec. Il a été utilisé dans ONC RPC et est fourni avec un outil appelé rpcgen. Il est également facile de créer un générateur vous-même lorsque vous souhaitez simplement sérialiser des données (ce que j'ai fini par faire pour des raisons de portabilité, m'a pris une demi-journée). Il existe une implémentation C open source, mais elle peut déjà figurer dans une bibliothèque système. Vous n’avez donc pas besoin des sources.

L’ASN.1 m’a toujours semblé un peu baroque, mais il serait peut-être plus approprié de répondre à vos besoins réels, car il existe certaines limitations au XDR.

Je voulais juste ajouter ASN.1 à ce mélange. ASN.1 est un format standard, mais il existe des bibliothèques pour la plupart des langues, et l'interface C via asn1c est beaucoup plus propre que l'interface C pour les tampons de protocole .

JSON est vraiment mon préféré pour ce genre de choses. Je n'ai aucune expérience préalable avec des trucs binaires. Envoyez vos résultats si vous envisagez d’utiliser JSON!

Thrift est un format binaire créé par Facebook. Voici une comparaison avec les tampons de protocole Google.

Découvrez Hessian

Il existe également un XML binaire , mais il semble que non. encore stabilisé. L'article vers lequel je fais un lien donne un tas de liens qui pourraient être intéressants.

Une autre option est SNAC / TLV qui est utilisé par AOL dans son Oscar / Protocole AIM.

Vérifiez également Muscle . Bien qu’il en fasse un peu, il se sérialise au format binaire.

Quelques éléments à prendre en compte

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

ASN.1 Parser est un atout pour les représentations binaires. La meilleure partie est que ASN.1 est une technologie bien établie qui est largement utilisée à la fois par l'UIT-T et par l'extérieur. La notation est prise en charge par un certain nombre de fournisseurs de logiciels.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top