다양한 프로그래밍 언어에서 호환되는 클라이언트와 서버를 생성하는 코드 생성기를 갖춘 언어 독립적인 RPC 프레임워크입니다.
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
CMake로 flatc 빌드를 구성합니다
cmake -G "Unix Makefiles" - 2
flatc 컴파일러를 컴파일합니다
make -j - 3
스키마(.fbs)를 작성합니다. 예시는 samples/monster.fbs를 참조하세요
- 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 통계는 매일 갱신됩니다.
관련 프로젝트
Node.js와 Chromium 기반으로 JavaScript, HTML, CSS를 사용해 크로스 플랫폼 데스크톱 앱을 만드는 프레임워크입니다.
네이티브 렌더링 엔진을 사용해 웹 프론트엔드(React, Vue, Svelte 등)를 갖춘 크로스 플랫폼 데스크톱 앱을 만들 수 있는 Go 프레임워크입니다.
nano의 후속으로 설계된, 의존성 없이 단일 정적 바이너리로 배포되는 현대적이고 사용하기 쉬운 터미널 텍스트 편집기입니다.
단일 코드베이스로 데스크톱 및 모바일 앱을 만들 수 있는 Go용 크로스 플랫폼 GUI 툴킷이자 앱 API입니다.
C stdio와 iostreams보다 빠르고 타입 안전한 대안을 제공하며 C++20 std::format을 구현한 C++ 포맷팅 라이브러리입니다.