Pergunta

Eu estou olhando para um mecanismo para dados serialize a ser passada através de um socket ou de memória compartilhada em um mecanismo independente de linguagem. Estou relutante em usar XML uma vez que este dados vai ser muito estruturado e codificação / decodificação de velocidade é vital. Ter uma boa API C que é liberalmente licenciado é importante, mas idealmente deve haver apoio para uma tonelada de outras línguas. Eu olhei para buffers de protocolo do Google e ASN.1 . Estou no caminho certo? Existe algo melhor? Devo apenas implementar a minha própria estrutura embalado e não procurar algum padrão?

Foi útil?

Solução

Dada suas necessidades, eu iria com Google Protocol Buffers. Parece que ele é ideal para a sua aplicação.

Outras dicas

Você poderia considerar XDR. Ele tem um RFC . Eu usei-o e nunca tive quaisquer problemas de desempenho com ele. Foi utilizado em ONC RPC e tem uma e vem com uma ferramenta chamada rpcgen. Também é fácil criar um gerador de si mesmo quando você quer apenas aos dados serialize (que é o que eu acabei fazendo por razões de portabilidade, me levou metade de um dia). Não é uma implementação open source C, mas já pode estar em uma biblioteca de sistema, de modo que você não precisa as fontes.

ASN.1 sempre me pareceu um pouco barroco para mim, mas dependendo de suas necessidades reais pode ser mais apropriado, uma vez que existem algumas limitações para XDR.

Apenas queria jogar em ASN.1 nesta mistura. ASN.1 é um formato padrão, mas há bibliotecas para a maioria dos idiomas, eo C interface através asn1c é muito mais limpo do que o C interface para buffers de protocolo .

JSON é realmente o meu favorito para este tipo de coisa. Eu não tenho nenhuma experiência prévia com o material binário no-lo embora. Por favor, postar seus resultados se você estiver planejando usar JSON!

Thrift é um formato binário criado pelo Facebook. Aqui está uma comparação com buffers de protocolo do Google.

Confira Hessian

Há também Binary XML mas não parece ainda estabilizado. O artigo I conectar-se a dá um monte de links que possam ser de interesse.

Outra opção é SNAC / TLV que é usada pela AOL nele do Oscar / AIM protocolo.

Também confira Muscle . Enquanto ele faz um pouco, ele serializa para um formato binário.

Poucos coisa é que você precisa considerar

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

ASN.1 analisador é o bom para represenations binários a melhor parte é ASN.1 é uma tecnologia bem estabelecida, que é amplamente utilizado tanto dentro ITU-T e fora dela. A notação é apoiado por uma série de fornecedores de software.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top