Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. C/C++
  3. FastBinaryEncoding

FastBinaryEncoding

MITC++1.15.0.0

Ultra-fast binary serialization library with code generation for C++, C#, Go, Java, JavaScript, Kotlin, Python, Ruby, and Swift.

Visit WebsiteGitHubGitHub
953 stars98 forks0 contributors

What is FastBinaryEncoding?

Fast Binary Encoding is an ultra-fast serialization library that generates native code for multiple programming languages from a single domain model definition. It provides a compact binary format for efficient data exchange and includes built-in versioning to handle schema evolution without breaking compatibility.

Target Audience

Developers building high-performance, cross-platform applications that require efficient data serialization, such as financial trading systems, game engines, distributed systems, and communication protocols.

Value Proposition

It offers significantly faster serialization speeds than alternatives like Protocol Buffers and FlatBuffers, supports seamless versioning for evolving protocols, and generates consistent, type-safe code across nine programming languages from a single schema.

Overview

Fast Binary Encoding is ultra fast and universal serialization solution for C++, C#, Go, Java, JavaScript, Kotlin, Python, Ruby, Swift

Use Cases

Best For

  • High-frequency trading systems requiring minimal serialization latency
  • Cross-platform game development with shared binary data formats
  • Microservices communication with versioned protocols
  • IoT device data exchange with resource-constrained environments
  • Financial applications needing strict schema evolution control
  • Real-time messaging systems with binary payload optimization

Not Ideal For

  • Projects using languages not in the supported nine (e.g., Rust, PHP, or Dart), as FBE only generates code for C++, C#, Go, Java, JavaScript, Kotlin, Python, Ruby, and Swift.
  • Rapid prototyping or small scripts where the overhead of code generation, build tools (like cmake and gil), and language-specific dependencies outweighs the performance benefits.
  • Applications where JSON is the primary data format and binary optimization is unnecessary, since FBE's JSON support requires external libraries (e.g., RapidJSON for C++) and adds setup complexity.
  • Teams seeking a widely adopted, community-driven ecosystem with extensive third-party integrations, as FBE is largely maintained by a single author and has fewer tools compared to Protocol Buffers.

Pros & Cons

Pros

Multi-Language Code Generation

Generates native, type-safe code for nine programming languages from a single schema, ensuring cross-platform consistency and reducing implementation errors. The README provides sample projects for all supported languages.

High Performance Serialization

Benchmarks show FBE outperforms Protocol Buffers and FlatBuffers, with C++ serialization as fast as 66 ns per message. The README includes detailed performance tables across languages.

Built-in Versioning Support

Handles schema evolution seamlessly by allowing new fields to be added at the end of structs, maintaining backward and forward compatibility without breaking changes. The versioning section explains this with examples.

Optional JSON Serialization

Provides JSON conversion for web API compatibility, though it relies on third-party libraries like RapidJSON for C++ and Gson for Java. This flexibility supports mixed binary and text-based workflows.

Sender/Receiver Protocol

Includes generated interfaces for communication protocols with send and receive handlers, facilitating structured data exchange in networked applications. The README demonstrates this with a C++ example.

Cons

Complex Setup Dependencies

Requires installation of multiple tools (cmake, git, gil, python3) and language-specific libraries (e.g., fmt for C++, Json.NET for C#), increasing initial setup time and maintenance overhead.

External JSON Library Reliance

JSON serialization depends on third-party libraries in most languages, such as RapidJSON for C++ and Gson for Java, which can introduce compatibility issues and bloat projects with additional dependencies.

Limited Type Support in Some Languages

For example, C++ emulates decimal types with double instead of using precise libraries like GMP, and JavaScript JSON serialization is limited to string keys for maps and hashes, restricting data modeling.

Steeper Learning Curve

Involves using custom tools like the 'fbec' compiler and understanding the FBE schema language, which may be a barrier compared to more established serialization frameworks with broader documentation and community resources.

Open Source Alternative To

FastBinaryEncoding is an open-source alternative to the following products:

Protocol Buffers
Protocol Buffers

Protocol Buffers (protobuf) is a language-neutral, platform-neutral extensible mechanism for serializing structured data, developed by Google for efficient data interchange.

F
Flatbuffers

FlatBuffers is an efficient cross-platform serialization library developed by Google, enabling fast data access without parsing/unpacking, often used in game development and high-performance applications.

C
Cap'n Proto

Cap'n Proto is a fast data interchange format and capability-based RPC system designed for high performance and low overhead.

Frequently Asked Questions

Quick Stats

Stars953
Forks98
Contributors0
Open Issues31
Last commit9 months ago
CreatedSince 2018

Tags

#multi-language#high-performance#protocol-buffers-alternative#schema-evolution#csharp#java#binary-encoding#low-latency#python#serialization#binary#javascript#cross-platform#rpc#protocol#code-generation#data-exchange#cpp#performance

Built With

J
Json.Net
r
rapidjson
G
Gson
C
CMake
C
C++

Links & Resources

Website

Included in

C/C++70.6k
Auto-fetched 23 hours ago

Related Projects

ProtoBufProtoBuf

Protocol Buffers - Google's data interchange format

Stars71,181
Forks16,115
Last commit23 hours ago
FlatBuffersFlatBuffers

FlatBuffers: Memory Efficient Serialization Library

Stars25,857
Forks3,554
Last commit15 days ago
Cap'n ProtoCap'n Proto

Cap'n Proto serialization/RPC system - core tools and C++ library

Stars13,010
Forks1,047
Last commit2 days ago
nanopbnanopb

Protocol Buffers with small code size

Stars5,360
Forks1,008
Last commit26 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub