Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. colfer

colfer

CC0-1.0Javav1.8.1

A binary serialization format and compiler optimized for speed and size, generating code from schema definitions.

GitHubGitHub
758 stars55 forks0 contributors

What is colfer?

Colfer is a binary serialization format and compiler that generates source code from schema definitions to marshal and unmarshal data structures. It is optimized for speed and size, making it ideal for efficient data exchange in networked applications and storage systems. The format is designed to be robust against malicious input and includes built-in size protection.

Target Audience

Developers working on performance-sensitive applications requiring efficient binary serialization, such as networked services, data pipelines, or embedded systems. It is particularly useful for teams using multiple programming languages (C, Go, Java, JavaScript) who need consistent serialization across stacks.

Value Proposition

Colfer offers superior performance and smaller payloads compared to alternatives like Protocol Buffers, with no external dependencies and strong security guarantees. Its schema compiler generates lightweight, type-safe code, reducing runtime overhead and simplifying integration.

Overview

binary serialization format

Use Cases

Best For

  • High-performance networked applications requiring low-latency serialization
  • Systems needing compact binary data representation for storage or transmission
  • Multi-language projects where consistent serialization across C, Go, Java, and JavaScript is required
  • Environments where security against malicious input is a priority
  • Embedded or resource-constrained systems benefiting from minimal dependencies
  • Data streaming or concatenation scenarios due to its framed format

Not Ideal For

  • Projects requiring native enumeration types for data modeling
  • Systems with data structures that exceed 127 fields per struct
  • Teams using Rust or Python as primary languages, as support is still in development or community-driven
  • Applications needing human-readable formats like JSON for debugging or interoperability with third-party APIs

Pros & Cons

Pros

Blazing Fast Performance

Benchmarks cited in the README show Colfer outperforms competitors in serialization speed and produces smaller payloads, treating suboptimal performance as a bug.

Built-in Security Guarantees

Includes size protection against malicious input and memory bombs, ensuring predictable memory consumption for untrusted data sources like network I/O.

Zero External Dependencies

Generated code relies only on core libraries, simplifying deployment and reducing runtime overhead across all supported languages.

Multi-Language Consistency

Generates type-safe code for C, Go, Java, and JavaScript from a single schema, enabling consistent serialization in polyglot environments.

Cons

Limited Language Ecosystem

Key languages like Rust and Python are still TODO or community ports, lacking official support, which can hinder adoption in diverse tech stacks.

Restrictive Schema Features

Maximum of 127 fields per struct and no support for enumerations, as admitted in the README, making it unsuitable for complex data models.

Basic Versioning Support

Backwards compatibility requires adding new fields only at the end, and the format is under revision (v2 in TODO's), indicating potential breaking changes.

Open Source Alternative To

colfer 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.

Frequently Asked Questions

Quick Stats

Stars758
Forks55
Contributors0
Open Issues10
Last commit2 months ago
CreatedSince 2015

Tags

#binary-serialization#high-performance#code-generator#java#c11#golang#serialization#binary-data#javascript#cross-platform#network-communication#code-generation#data-format#performance

Built With

G
Go

Included in

Go169.1kJVM2.2k
Auto-fetched 1 day ago

Related Projects

RxJavaRxJava

RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.

Stars48,285
Forks7,589
Last commit5 days ago
VarIntVarInt

a fast, scalable, multi-language and extensible build system

Stars25,352
Forks4,457
Last commit2 days ago
caffeinecaffeine

A high performance caching library for Java

Stars17,632
Forks1,686
Last commit1 day ago
jsoniterjsoniter

A high-performance 100% compatible drop-in replacement of "encoding/json"

Stars13,908
Forks1,057
Last commit1 year 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