<a href="https://bebop.sh/" target="_blank" rel="noopener">
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="./assets/header.jpg" />
    <img alt="Bebop" src="./assets/header.jpg" />
  </picture>
</a>

<div align="center">
  <h1>Bebop</h1>
   <h3>No ceremony, just code.<br/> Blazing fast, typesafe binary serialization.</h3>
  <a href="https://github.com/betwixt-labs/bebop/blob/main/LICENSE.txt">
    <img alt="Apache License" src="https://img.shields.io/github/license/betwixt-labs/bebop" />
  </a>
  <a href="https://discord.gg/jVfz9sMPWv">
    <img alt="Discord" src="https://img.shields.io/discord/1102669305537110036?color=7389D8&label&logo=discord&logoColor=ffffff" />
  </a>
  <br />
  <a href="https://twitter.com/andrewmd5">
    <img alt="Twitter" src="https://img.shields.io/twitter/url.svg?label=%40andrewmd5&style=social&url=https%3A%2F%2Ftwitter.com%2Fandrewmd5" />
  </a>
  <br />
  <br />
  <figure>
  <a href="https://bebop.sh/repl/">
    <img src="./assets/repl.gif" alt="REPL demo" />
       </a>
    <figcaption>
      <p align="center">
        Modern code generation. No bloat.
      </p>
    </figcaption>
  </figure>
</div>

<br />

## Intro

Bebop enables schema-based, typesafe, binary serialization and code generation. It is designed to be a good fit for client–server or distributed web apps that require a faster, more concise, and more typesafe alternative to JSON or MessagePack, while avoiding the complexity of Protocol Buffers, FlatBuffers, and similar solutions.

If you want to get familiar with the schema language and see what the generated code looks like, try out the [web REPL](https://bebop.sh/repl/).

### Features

- 🧙‍♂️&nbsp; Supports [Typescript](https://github.com/betwixt-labs/bebop/wiki/Getting-Started-with-TypeScript), [C#](https://github.com/betwixt-labs/bebop/wiki/Getting-Started-with-.NET), [Rust](https://github.com/betwixt-labs/bebop/wiki/Getting-Started-with-Rust), C++, and more.
- 🐎&nbsp; Snappy DX - integrate `bebopc` into your project with ease. Language support available in [VSCode](https://marketplace.visualstudio.com/items?itemName=betwixt.bebop-lang).
- 🍃&nbsp; Light - Bebop has zero deps and a tiny runtime footprint. Generated code is tightly optimized.
- 🌗&nbsp; RPC - build efficent APIs with [Tempo](https://github.com/betwixt-labs/tempo/).
- ☁️&nbsp; Runs everywhere - browsers, serverless platforms, and on bare metal.

**👉 For more information check out the [wiki](https://github.com/betwixt-labs/bebop/wiki). 👈**


Bebop is insanely fast! 🚀


 ![P12CpmA](https://user-images.githubusercontent.com/1297077/235745675-fc8a18e2-361f-4b7b-b9c9-47155e511b0a.png)

## Releases

To find the latest release of the `bebopc` and its corresponding runtimes, visit the [release page](https://github.com/betwixt-labs/bebop/releases).

## Documentation

Bebop is documented on [this repository's wiki](https://github.com/RainwayApp/bebop/wiki). Here are some quick links to get you started:

- [Writing Bops: The Bebop Schema Language](https://github.com/RainwayApp/bebop/wiki/Writing-Bops:-The-Bebop-Schema-Language)
- [Getting Started with TypeScript](https://github.com/RainwayApp/bebop/wiki/Getting-Started-with-TypeScript)
- [Getting Started with Rust](https://github.com/RainwayApp/bebop/wiki/Getting-Started-with-Rust)
- [Getting Started with .NET](https://github.com/RainwayApp/bebop/wiki/Getting-Started-with-.NET)

[_See You Space Cowboy_...](https://www.youtube.com/watch?v=u1UZHXB_r6g)
