Repolode
google

google/flatbuffers

먼저 파싱하거나 언팩하지 않고 바이너리 데이터를 바로 읽을 수 있는 크로스 플랫폼 직렬화 라이브러리입니다.

대체할 수 있는 제품:Protocol Buffers

스타
26,567
포크
3,712
열린 이슈
333
마지막 커밋
5시간 전

어떤 프로젝트인가요?

FlatBuffers는 메모리 효율성을 고려해 설계된 직렬화 라이브러리입니다. 데이터를 바이너리 버퍼에 저장하고 버퍼 내에서 바로 접근할 수 있어, 애플리케이션은 직렬화된 바이트를 객체로 먼저 역직렬화하는 대신 필드를 직접 읽습니다. 스키마가 발전해도 이전 버전 및 이후 버전과의 호환성을 유지합니다.

데이터를 스키마 파일(.fbs)에 정의한 다음 flatc 컴파일러를 실행해 사용하는 언어의 접근자 코드를 생성합니다. 이 저장소에는 C, C++, C#, Dart, Go, Java, JavaScript, Kotlin, Lua, PHP, Python, Rust, Swift, TypeScript 등의 런타임 라이브러리와 코드 생성 기능이 포함되어 있습니다.

Windows, macOS, Linux, Android를 지원하며, 최신 C++ 컴파일러(C++11 이상)를 사용할 수 있는 모든 플랫폼에서 작동합니다.

핵심 기능

  • 01파싱하거나 언팩하는 과정 없이 직렬화된 데이터에 바로 접근합니다.
  • 02하나의 스키마에서 다양한 언어의 접근자 코드를 생성합니다.
  • 03스키마 버전이 달라져도 이전 버전 및 이후 버전과의 호환성을 지원합니다.
  • 04Windows, macOS, Linux, Android에서 작동합니다.

활용 사례

  • 서로 다른 언어로 작성된 서비스나 구성 요소 간에 데이터를 주고받는 경우.
  • 게임이나 임베디드 시스템처럼 빠르고 할당이 필요 없는 읽기가 중요한 곳에 바이너리 데이터를 저장하는 경우.
  • 파일 전체를 로드하지 않고 메모리 매핑으로 대용량 직렬화 파일을 읽는 경우.

빠른 시작

  1. 1

    CMake로 flatc 빌드를 구성합니다

    cmake -G "Unix Makefiles"
  2. 2

    flatc 컴파일러를 컴파일합니다

    make -j
  3. 3

    스키마(.fbs)를 작성합니다. 예시는 samples/monster.fbs를 참조하세요

  4. 4

    스키마에서 각 언어용 코드를 생성합니다

    ./flatc --cpp --rust monster.fbs

사용 전 알아둘 점

  • README에는 flatc 컴파일러를 패키지 관리자로 설치하는 방법이 없습니다. CMake와 C++ 컴파일러를 사용해 소스에서 빌드해야 합니다.

토픽

자주 묻는 질문

flatbuffers은(는) 무엇인가요?
먼저 파싱하거나 언팩하지 않고 바이너리 데이터를 바로 읽을 수 있는 크로스 플랫폼 직렬화 라이브러리입니다. FlatBuffers는 메모리 효율성을 고려해 설계된 직렬화 라이브러리입니다. 데이터를 바이너리 버퍼에 저장하고 버퍼 내에서 바로 접근할 수 있어, 애플리케이션은 직렬화된 바이트를 객체로 먼저 역직렬화하는 대신 필드를 직접 읽습니다. 스키마가 발전해도 이전 버전 및 이후 버전과의 호환성을 유지합니다.
flatbuffers은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
flatbuffers은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
flatbuffers은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. flatbuffers의 마지막 커밋은 2026년 10월 21일입니다.
flatbuffers은(는) 어디에 사용할 수 있나요?
서로 다른 언어로 작성된 서비스나 구성 요소 간에 데이터를 주고받는 경우. 게임이나 임베디드 시스템처럼 빠르고 할당이 필요 없는 읽기가 중요한 곳에 바이너리 데이터를 저장하는 경우. 파일 전체를 로드하지 않고 메모리 매핑으로 대용량 직렬화 파일을 읽는 경우.
flatbuffers는 어떻게 설치하나요?
CMake로 flatc 빌드를 구성합니다: cmake -G "Unix Makefiles" flatc 컴파일러를 컴파일합니다: make -j 스키마(.fbs)를 작성합니다. 예시는 samples/monster.fbs를 참조하세요 스키마에서 각 언어용 코드를 생성합니다: ./flatc --cpp --rust monster.fbs
flatbuffers은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/google/flatbuffers

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트