플랫 버퍼

FlatBuffers
플랫 버퍼
원저작자바우터 판 오르트메르센
초기 릴리즈2014년 6월 17일, 8년 전(2014-06-17)[1]
안정된 릴리스
2.0.6 / 2022년 2월 15일, 5개월 전(2022-02-15)[2]
저장소
기입처C++
운영 체제Android, Microsoft Windows, Mac OS X, Linux
유형시리얼라이제이션 포맷 및 라이브러리, IDL 컴파일러
면허증.Apache 라이센스 2.0
웹 사이트google.github.io/flatbuffers/ Edit this on Wikidata

FlatBuffersProtocol Buffers, Thrift, Apache Avro, SBECap'n Proto와 유사직렬화 형식을 구현하는 자유 소프트웨어 라이브러리이며, 주로 Wouter van Oortmersson에 의해 작성되고 Google에 의해 오픈 소싱됩니다.「제로 카피」의 역직렬화를 서포트하고 있기 때문에, 시리얼화된 데이터에 액세스 할 때에, 최초로 메모리를 다른 부분에 카피할 필요가 없습니다.따라서 JSON, CSV 및 많은 경우 프로토콜 버퍼와 같이 보다 광범위한 처리가 필요한 형식의 데이터보다 이러한 형식의 데이터에 훨씬 빠르게 액세스할 수 있습니다.다만, 다른 시리얼라이제이션 포맷에 비해, 플랫 버퍼의 처리에는 통상, 보다 많은 코드가 필요하게 되어, 일부의 조작(일부 변환 조작 등)이 불가능한 경우가 있습니다.

직렬화된 형식을 사용하면 모든 데이터를 구문 분석하지 않고도 특정 데이터 요소(예: 개별 문자열 또는 정수 속성)에 임의로 액세스할 수 있습니다.가변 길이 정수를 사용하는 Protocol Buffers와 달리 FlatBuffers는 정수를 네이티브 크기로 인코딩하므로 성능은 향상되지만 인코딩된 표현은 길어집니다.

FlatBuffer는 C++, C#, C, Go, Java, JavaScript, Kotlin, 랍스터, Lua, PHP, Python, Rust, SwiftTypeScript작성된 소프트웨어에서 사용할 수 있습니다.스키마 컴파일러는 Android, Microsoft Windows, Mac OS X [3]Linux에서 실행되지만 게임 및 기타 프로그램에서는 iOS, AmazonFire OS 및 Windows [4]Phone을 포함한 많은 다른 운영 체제에서도 직렬화 작업에 FlatBuffer를 사용합니다.

Van Oortmersen은 원래 게임 개발 및 유사한 애플리케이션을 [5][1]위해 Flat Buffers를 개발했습니다.

FlatBuffers에는 시리얼화할 데이터를 정의하는 자체 인터페이스 정의 언어가 있지만 Protocol Buffers.proto [6]형식으로 정의된 스키마도 지원합니다.

사용자

FlatBuffers의 주요 사용자:

  • 인기 있는 자유 소프트웨어 2-D 게임 프로그래밍 라이브러리인 Cocos2d-x는 FlatBuffers를 사용하여 모든 게임 [7]데이터를 시리얼화합니다.
  • Facebook Android Client는 디스크 저장 및 Facebook 서버와의 통신에 FlatBuffer를 사용합니다.이전에 사용하던 JSON 포맷의 퍼포먼스가 [8]저조했습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b Wouter van Oortmerssen (2014-06-17). "FlatBuffers: A Memory-Efficient Serialization Library". Retrieved 2017-06-15.
  2. ^ "Release v2.0.6 - google/flatbuffers". Retrieved 25 April 2022 – via GitHub.
  3. ^ "GitHub — google/flatbuffers: Memory Efficient Serialization Library". GitHub. Retrieved 2020-12-10.
  4. ^ "FlatBuffers for Unity". eXiin. 2015-09-21. Retrieved 2017-06-15. We tested flatbuffers [sic] on all major mobile platforms (iOS, Android, Amazon Os [sic], Windows Phone) we’re building on[,] and it works pretty well.
  5. ^ "FlatBuffers Documentation". Retrieved 2017-06-21. FlatBuffers is an efficient cross platform serialization library for C++, C#, C, Go, Java, JavaScript, PHP, and Python. It was originally created at Google for game development and other performance-critical applications.
  6. ^ Kenton Varda (2014-06-17). "Cap'n Proto, FlatBuffers, and SBE". Retrieved 2017-06-15.
  7. ^ http://www.cocos2d-x.org/reference/native-cpp/V3.5/d7/d2d/namespaceflatbuffers.html
  8. ^ George Xie (2015-07-31). "Improving Facebook's performance on Android with FlatBuffers". Retrieved 2017-06-15. Story load time from disk cache is reduced from 35 ms to 4 ms per story. Transient memory allocations are reduced by 75 percent. Cold start time is improved by 10-15 percent. We have reduced storage size by 15 percent.