Back to Explore

bufbuild/protobuf-es

GitHub
5 updates · last 90 daysOpen source

Last release:

Protocol Buffers for JavaScript and TypeScript, provided by @bufbuild/protobuf. It focuses on modern, ergonomic message APIs and is described as fully compliant with Protobuf conformance tests, useful for building typed Protobuf-based APIs (including with Connect via generated stubs).

Project status

  • Actively maintained. The most recent upstream push is 2026-09-29, and tagged updates continue through at least 2026-09-29 (v2.16.0), indicating ongoing development.
  • Apparent update cadence. Updates arrive frequently, roughly every 1 to 3 weeks for recent versions (e.g., 2026-09-29, 2026-09-11, 2026-08-31), with earlier releases also occurring on a multi-month rhythm.

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v2.17.0

    v2.17.0 is primarily a correctness and edge-case release, including fixes for map-entry parsing, enum alias JSON output, timestamp error text, and binary string decoding, plus a small BinaryReader performance improvement. It also adds guidance for configuring generated code across bundlers and runtimes and for using Protobuf-ES with grpc-node.

    Features
  • v2.16.0

    v2.16.0 updates the project to protobuf v36.0 and adds support for edition 2026 enum JSON naming. It also improves JSON float32 handling and changes binary parsing behavior for repeated map entry values, along with expanding well-known Protobuf exports to include full names.

    Features
  • v2.15.0

    v2.15.0 primarily introduces a new plugin option, `map_imports`, intended to let users map imported Protobuf dependencies to code provided by external packages. The diff also updates documentation to describe the new option and expands the plugin-options reference pages accordingly.

    Features
  • v2.14.1

    v2.14.1 primarily changes how Protobuf-ES handles text encoding when the environment lacks the Text Encoding API. It deprecates configureTextEncoding() and updates documentation to require installing TextEncoder/TextDecoder on globalThis, and it also adjusts the code generator behavior for import_extension handling on relative imports.

    Breaking
  • v2.14.0

    v2.14.0 is presented as a performance and bundle-size reduction release for protobuf-es, with multiple runtime optimizations and benchmark additions. The release notes enumerate the optimization themes (BinaryWriter improvements, base64 and string fast paths, descriptor compilation/caching). The code diff snippets provided also show broader repository and tooling changes, including CI and Node version support adjustments.

    Breaking
  • v2.13.0

    v2.13.0 adds support for the Protobuf Text Format (txtpb) and introduces an experimental enum generation mode to support erasable syntax. It also documents a new `readMaxBytes` option related to size-delimited decoding. The diff also updates conformance tests and documentation around these features.

    Features
  • v2.12.1

    Release v2.12.1 includes a set of runtime correctness fixes around binary and JSON parsing and serialization, including recursion limits, -0.0 float handling, enum range checks, and stricter JSON parsing (duplicate key rejection). The release notes also mention an infrastructure change for GitHub publishing workflow trust and a fix for a dual package type hazard.

    Features
  • v2.12.0

    v2.12.0 updates generated protobuf TypeScript output and improves several runtime parsing and encoding edge cases, including UTF-8 validation and JSON handling. It also regenerates artifacts against protocolbuffers/protobuf v34.0 and updates conformance tests accordingly.

    Features
  • v2.11.0

    v2.11.0 primarily targets JSON (de)serialization correctness and performance, and adds Bun support. The release notes also mention a new plugin option (elide_plugin_version), FieldMask JSON validation fixes, and caching behavior for fromJson().

    Features
  • v2.10.2

    v2.10.2 primarily updates the bundled protobuf tooling, and extends ProtoJSON behavior to allow `google.protobuf.Value.null_value` inside map values. The provided diff shows a large-scale regeneration of protobuf JavaScript output, with many files changed.

  • v2.10.1

    v2.10.1 updates the protobuf-es toolchain by bumping a dependency on @typescript/vfs (documented as moving to 1.6.2). The release notes do not mention any other dependency or code-generation changes.

  • v2.10.0

    v2.10.0 adds google.protobuf.Duration conversion helpers (durationFromMs and durationMs) and improves JSON serialization for Timestamp and Duration, alongside a performance optimization for field sorting. It also updates generated protobuf code to Protocol Buffers v33 and includes a new Deno example with README documentation updates.

    Features
  • v2.9.0

    v2.9.0 is primarily focused on adding Deno support. The code diff shows a new Deno conformance test harness (including generated protobufs and a new GitHub Actions workflow), along with documentation updates to explicitly mention Deno. Many protobuf bundle files are also regenerated, with only the generator metadata comment changing from v2.8.0 to v2.9.0.

    Features
  • v2.8.0

    v2.8.0 is described as adding support for Protobuf Edition 2024 and fixing “valid types” for interstitial references. However, the code diff shows a broad regeneration of bundled google-protobuf JavaScript sources (hundreds of generated _pb.js files), with runtime decoding and serialization behavior changes that are not covered in the release notes.

    Features
  • v2.7.0

    v2.7.0 primarily updates the project to TypeScript 5.9, which changes some generated return types due to upstream lib.d.ts changes. It also drops Node.js 18, expands CI coverage to include Node v24, and includes a bundle-size related optimization around closed enum parsing. A number of toolchain and configuration updates appear to have been done alongside these changes.

    Breaking