54 stable releases

3.1.3 Oct 19, 2024
3.0.14 Aug 12, 2024
3.0.11 Jul 15, 2024
3.0.6 Mar 29, 2024
0.1.0 Oct 29, 2020

#949 in Encoding

45 downloads per month
Used in atomic_websocket

Apache-2.0

57KB
1.5K SLoC

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

~215KB