57 releases (stable)

new 3.0.9 May 29, 2024
3.0.6 Mar 29, 2024
3.0.3-beta.3 Feb 10, 2024
2.8.7 Jul 18, 2023
0.1.0 Oct 29, 2020

#1896 in Encoding

Apache-2.0

17KB
295 lines

Bebop

Bebop

No ceremony, just code.
Blazing fast, typesafe binary serialization.

Apache License Discord
Twitter

Introduction

Bebop is a high-performance data interchange format designed for fast serialization and deserialization.

        
// Example Bebop Schema
struct Person {
  string name;
  uint32 age;
}
        
      
        
// Generated TypeScript Code
new Person({
    name: "Spike Spiegel",
    age: 27
}).encode();
        
      
Write concise and expressive schemas with Bebop's intuitive syntax. Using a generated class to persist data.

It combines the simplicity of JSON with the efficiency of binary formats, delivering exceptional performance. In benchmarks, Bebop outperforms Protocol Buffers by approximately 10 times in both C# and TypeScript. Compared to JSON, Bebop is roughly 10 times faster in C# and about 5 times faster in TypeScript.

Benchmark Graphs

Bebop provides a modern, developer-friendly experience while ensuring top-notch performance. It is the ideal choice for any application that requires efficient data serialization, especially in performance-critical scenarios.

To explore the schema language and see examples of the generated code, check out the playground.

Key Features

  • 🧙‍♂️  Supports Typescript, C#, Rust, C++, and more.
  • 🐎  Snappy DX - integrate bebopc into your project with ease. Language support available in VSCode.
  • 🍃  Lightweight - Bebop has zero dependencies and a tiny runtime footprint. Generated code is tightly optimized.
  • 🌗  RPC - build efficient APIs with Tempo.
  • ☁️  Runs everywhere - browsers, serverless platforms, and on bare metal.
  • 📚  Extendable - write extensions for the compiler in any language.

👉 For more information, check out the documentation. 👈

See You Space Cowboy...

Dependencies

~0–16MB
~185K SLoC