언어 독립적 인 이진 형식으로 데이터를 직렬화하는 가장 좋은 방법은 무엇입니까?

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

문제

나는 언어 독립적 메커니즘으로 소켓이나 공유 메모리를 통해 통과 할 수있는 직렬화 데이터의 메커니즘을 조사하고 있습니다. 이 데이터는 매우 구조화되기 때문에 XML을 사용하는 것을 꺼려하며 인코딩/디코딩 속도가 중요합니다. 자유롭게 라이센스가 부여 된 좋은 C API를 갖는 것이 중요하지만 이상적으로는 다른 언어를 지원해야합니다. 나는 보았다 Google의 프로토콜 버퍼 그리고 ASN.1. 내가 올바른 길을 가고 있습니까? 더 좋은 것이 있습니까? 내 자신의 포장 구조를 구현하고 표준을 찾지 않아야합니까?

도움이 되었습니까?

해결책

귀하의 요구 사항이 주어지면 Google 프로토콜 버퍼와 함께 사용합니다. 응용 프로그램에 이상적으로 적합한 것 같습니다.

다른 팁

XDR을 고려할 수 있습니다. 그것은 있습니다 RFC. 나는 그것을 사용했고 성능 문제가 없었습니다. ONC RPC에서 사용되었으며 RPCGEN이라는 도구가 제공됩니다. 데이터를 직접화하고 싶을 때 생성기를 직접 만들기가 쉽습니다 (이는 휴대 성 이유로 인해 반나절이 걸렸습니다). 오픈 소스 C 구현이 있지만 이미 시스템 라이브러리에있을 수 있으므로 소스가 필요하지 않습니다.

ASN.1은 항상 나에게 약간의 바로크처럼 보였지만 실제 요구에 따라 XDR에 약간의 제한이 있기 때문에 더 적절할 수 있습니다.

이 믹스에 ASN.1을 던지고 싶었습니다. ASN.1은 형식 표준이지만 대부분의 언어에 대한 라이브러리가 있으며 C 인터페이스를 통해 C 인터페이스가 있습니다. ASN1C 보다 훨씬 깨끗합니다 C 프로토콜 버퍼의 인터페이스.

JSON은 이런 종류의 것들에 대해 제가 가장 좋아하는 것입니다. 나는 이진 물건에 대한 사전 경험이 없습니다. JSON을 사용할 계획이라면 결과를 게시하십시오!

절약 Facebook에서 만든 이진 형식입니다. 여기에 비교가 있습니다 Google 프로토콜 버퍼로.

체크 아웃 헤시안

도 있습니다 이진 XML 그러나 아직 안정화되지 않은 것 같습니다. 내가 링크하기 위해 링크 된 기사는 관심이있는 많은 링크를 제공합니다.

또 다른 옵션입니다 SNAC/TLV OSCAR/AIM 프로토콜에서 AOL에서 사용합니다.

또한 체크 아웃하십시오 근육. 그것은 꽤 많이 사용되지만 이진 형식으로 직렬화됩니다.

고려해야 할 것은 몇 가지입니다

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

ASN.1 Parser는 이진 표현에 적합합니다. 가장 중요한 부분은 ASN입니다 .1은 ITU-T와 그 외부에서 널리 사용되는 잘 알려진 기술입니다. 이 표기법은 여러 소프트웨어 공급 업체가 지원합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top