The Buf blog

RSS feed
Protobuf

Protobuf Tip #4: Accepting mistakes we can’t fix

Protobuf’s distributed nature introduces evolution risks that make it hard to fix some types of mistakes. Sometimes the best thing to do is to just let it be.

Protobuf

Protobuf Tip #3: Enum names need prefixes

Enums inherit some unfortunate behaviors from C++. Avoid this problem by using the Buf lint rules ENUM_VALUE_PREFIX and ENUM_ZERO_VALUE_SUFFIX.

Protobuf

Protobuf Tip #2: Compress your Protos!

Compression is everywhere. This pervasiveness means that wire size tradeoffs matter less than they used to twenty years ago, when Protobuf was designed.

Protobuf

Protobuf Tip #1: Field names are forever

Don’t rename fields. Even though there are a slim number of cases you can get away with it, it’s rarely worth doing, and is a potential source of bugs.

November 20, 2024Timo Stamm and Joe Rinehart
Connect

Connect RPC for JavaScript: Connect-ES 2.0 is now generally available

Today, we’re announcing the 2.0 release of the Connect-ES project, the TypeScript implementation of Connect for Web browsers and Node.js. This release introduces improved support for major frameworks and simplified code generation. Connect-ES 2.0 now uses Protobuf-ES 2.0 APIs to leverage reflection, extension registries, and Protobuf custom options. The 2.0 release is a major version bump and comes with breaking changes. Read on to learn what’s changed and how to migrate to the 2.0 release.

November 11, 2024Michael Rebello
Connect

Connect-Swift 1.0 is now generally available

We’re excited to share that Connect-Swift has officially reached v1.0—its first stable release! With this milestone, the library’s battle-tested APIs will remain stable until its next major release. Projects can rely on Connect-Swift without worrying that future releases will cause breakages or require migrations.

September 18, 2024Team Buf
Buf CLI

Introducing custom lint and breaking change plugins for Buf

Buf is introducing custom lint and breaking change plugins via the Bufplugin framework. Check it out to see how easy it is to author, test, and consume your own lint and breaking change rules.

August 28, 2024Steve Ayers
Buf Schema Registry

Generated SDKs for C++ are now available on the Buf Schema Registry

We’re excited to announce that in addition to C#, Go, JavaScript/TypeScript, Java/Kotlin, Python, Swift, and Rust, the Buf Schema Registry now provides generated SDKs for C++ via CMake.

August 28, 2024Stefan VanBuren
Buf Schema Registry

Generated SDKs for C# are now available on the Buf Schema Registry

We’re excited to announce that in addition to C++, Go, JavaScript/TypeScript, Java/Kotlin, Python, Swift, and Rust, the Buf Schema Registry now provides generated SDKs for C# via NuGet.

Get started on the path to universal schema adoption

Across your entire data stack — from your network APIs to your streaming data to your data lake.