Skip to content

Releases: betwixt-labs/bebop

Bebop v3.0.6

29 Mar 05:43
03502a9
Compare
Choose a tag to compare
  • Fixes bebop-tools (node) using the WASI binary on native systems
  • Fixes erroneously importing Tempo when 'services' is set to 'none' (TypeScript)
  • The macOS builds are not signed in this release

Bebop v3.0.5

18 Mar 04:17
226423a
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v3.0.4...v3.0.5

Bebop v3.0.4

12 Mar 11:11
Compare
Choose a tag to compare

Introducing Bebop v3 - the fastest data serialization runtime in the world, and your new favorite replacement for Protocol Buffers 🚀
feature

Now supporting:

  • WASM powered compiler extensions 🦾
  • Python support 🐍
  • A 100% WinterCG compatible RPC 🌐
  • And tons of DevEx & performance improvements 🏎️

Improved CLI

Bebop v3 introduces a new CLI that is faster, more reliable, and easier to use. We focused on making it POSIX compliant, and added deeper integration with bebop.json configuration files. This makes it easier to use Bebop in your projects, and to integrate it into your build systems.

For more information on the CLI, check out the CLI documentation.

Improved VSCode Extension

We've overhauled the VSCode extension and made it faster, more reliable, and tightly integrated with your local project.

image

bebop.json Improvements

We've finally standardized the bebop.json configuration file, and added new ways to configure your project.

For more information on the bebop.json file, check out the bebop.json documentation & bebop.json schema.

Compiler Extensions

Bebop v3 introduces a new way to extend the compiler with chords. Chords are small, self-contained programs that can be written in any language and run as part of the compilation process using WASM. This allows you to add new features to the compiler, such as custom code generation, validation, or even entirely new languages.

For more information, check out the chords documentation.

Python Support

Bebop v3 now supports Python! You can now generate Python code from your Bebop schema files. This is a great way to use Bebop in your Python projects, or to interoperate with other languages that have Python bindings. #283

Playground

We've removed the old REPL and replaced it with a shiny new playground. The new playground is faster, more reliable, and has a better user interface.

Checkc it out at play.bebop.sh.

Tempo RPC

Bebop v3 introduces a new RPC system called Tempo. Tempo is a high-performance, low-latency RPC system that is 100% compatible with WinterCG. This means you can use Bebop to build efficient APIs that are compatible with the WinterCG ecosystem.

For more information, check out the Tempo documentation.

Decorators

Bebop v3 introduces a new way to annotate your schema types with decorators. Decorators are a way to add metadata to your types that can be used by the compiler to generate code. This is a great way to add custom behavior to your generated code, such as metadata, or to add custom validation rules.

Decorators replace the old attribute system. For more information see the decorators documentation.

v2 to v3

We've made a number of breaking changes in Bebop v3 to improve the developer experience and performance. Migrating from v2 to v3 is simple, just the following command:

bebopc convert --from v2 --to v3

All of the schemas in your included files will be converted to the new format.

Structs Immutable by Default

We've removed the readonly modifier from the schema language, and made structs immutable by default. To make a struct mutable, you can use the mut modifier.

For more information on the changes see the struct documentation.

Improved Documentation

As you've already seen from some of the links above, we've improved the documentation. We've added new guides, tutorials, and reference material to help you get started with Bebop, and to help you get the most out of the new features in v3.

You can find the new documentation at docs.bebop.sh.

.dev.vars & Constants

We've added a new way to dynamically define constants in your schema files using the .dev.vars file. This is a great way to define constants that are specific to your development environment, such as API keys, or feature flags.

For more information on the .dev.vars file, check out the dev.vars documentation.

bebopc.wasm

We've added a new way to run the Bebop CLI using WASM. This allows you to run the compiler in a browser, or in a serverless environment. When installing the bebop-tools package from NPM, it will automatically install the WASM version of the CLI in the relevant environment.

We're using this to power the new playground - and have even got it running on Cloudflare Workers

Performance Improvements

In Bebop v3 you'll find that runtimes for TypeScript, Rust, and C# are much faster. We've also made improvements to the generated code to make it more efficient, and to reduce the size of various runtimes.

The .NET runtime fully supports AOT compilation, and the Rust runtime has been optimized for size and performance. In the TypeScript runtime we've also removed any hard dependencies on node that bundlers and WinterCG don't need without breaking node compatibility or introducing polyfills.

Misc Improvements

Conclusion

This update has been a long time coming, and we're really excited to finally share it with you. Please share your feedback, and let us know if you have any questions or run into any issues. We're here to help, and we're committed to making Bebop the best serialization format in the world.

Full Change History

Full Changelog: v2.8.7...v3.0.4

Bebop v3.0.3-beta.3

10 Feb 15:15
Compare
Choose a tag to compare
Bebop v3.0.3-beta.3 Pre-release
Pre-release

Bebop v3.0.3-beta.2

10 Feb 14:16
Compare
Choose a tag to compare
Bebop v3.0.3-beta.2 Pre-release
Pre-release

Bebop v3.0.3-beta.1

10 Feb 13:14
Compare
Choose a tag to compare
Bebop v3.0.3-beta.1 Pre-release
Pre-release

Bebop v3.0.2-beta.1

10 Feb 11:55
Compare
Choose a tag to compare
Bebop v3.0.2-beta.1 Pre-release
Pre-release

Bebop v3.0.1-beta.1

10 Feb 10:55
Compare
Choose a tag to compare
Bebop v3.0.1-beta.1 Pre-release
Pre-release

Bebop v3.0.0-rc.3

10 Feb 09:26
Compare
Choose a tag to compare
Bebop v3.0.0-rc.3 Pre-release
Pre-release

Bebop v2.8.7

18 Jul 02:14
2333a76
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2.8.6...v2.8.7