Protobuf-ES

A conformance-tested, ESM-first Protocol Buffers runtime and code generator for modern JavaScript and TypeScript.

Library
npm
v2.16.0
1,676 stars
Apache License 2.0

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
91 /100 Excellent
Development Activity 96
Maintenance 100
Community 72
Maturity 56
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
84 /100 Excellent
Architecture 88
Code Quality 90
Innovation 85
Learning Curve 74

Protobuf-ES is Buf’s implementation of Protocol Buffers for JavaScript and TypeScript, built around plain message objects, native TypeScript types, and a standard protoc/Buf CLI plugin (protoc-gen-es) rather than a bespoke codegen wrapper. It targets full conformance with the official Protobuf test suite, supports proto3 and Edition 2024, and produces spec-compliant JSON (using native bigint for 64-bit integers instead of a Long.js shim).

The project ships as a small set of companion packages: @bufbuild/protobuf (the runtime with message APIs, JSON/binary serialization, reflection, and registries), @bufbuild/protoc-gen-es (the code-generation plugin), and @bufbuild/protoplugin (a framework for authoring custom Protobuf plugins). It pairs with connect-es for gRPC/gRPC-Web/Connect RPC on top of the same generated types, and is positioned as a modern, ESM-native alternative to google-protobuf and protobuf.js.

What You Get

  • A runtime (@bufbuild/protobuf) with create, fromBinary/toBinary, fromJson/toJson, reflection, and registries for messages and extensions
  • protoc-gen-es, a standard protoc/Buf CLI plugin that generates plain-object TypeScript types plus schema descriptors
  • @bufbuild/protoplugin, a framework for writing custom Protobuf code-generation plugins in TypeScript
  • Support for proto3 and Protobuf Editions (2023/2024), including typed extensions and discriminated-union oneofs
  • Spec-compliant JSON serialization using native bigint for 64-bit integers instead of Long.js

Common Use Cases

  • Generating typed TypeScript models from .proto schemas for use across a frontend and backend
  • Building gRPC, gRPC-Web, or Connect RPC clients/servers in TypeScript alongside connect-es
  • Migrating an existing google-protobuf or protobuf.js codebase to a modern, ESM-native Protobuf runtime
  • Writing custom Protobuf code generators on top of @bufbuild/protoplugin

Under The Hood

Architecture The repository is a Turborepo/npm-workspaces monorepo under packages/: protobuf holds the runtime (message creation, binary/JSON codecs, reflection, well-known types under src/wkt), protoc-gen-es is the standalone code-generation plugin, and protoplugin provides the framework that both protoc-gen-es and third-party plugins are built on. Conformance is validated in a dedicated protobuf-conformance integration against the upstream Google conformance test suite, and protobuf-test/protoplugin-test hold cross-package integration tests separate from each package’s own unit tests.

Tech Stack Written entirely in TypeScript (96% of the codebase), built with tshy for dual ESM/CJS output, linted and formatted with Biome, and versioned/released via Turborepo pipelines. The only non-Apache-2.0 code is the varint wire-format routine, carried over from Google’s original BSD-3-Clause-licensed implementation.

Code Quality The project runs the official Protobuf conformance test suite (0 required-test failures as of the reviewed release) in addition to its own unit and integration tests across protobuf-test and protoplugin-test, giving it stronger correctness guarantees than most JS Protobuf implementations. Reflection, registries, and extensions are implemented as first-class, tested APIs rather than bolted-on afterthoughts.

API Design The public API centers on plain message objects plus free functions (create, fromBinary, toBinary, fromJson, toJson) operating on a schema object, rather than generated classes with getter/setter methods — a deliberate departure from google-protobuf’s API shape that the README documents with an explicit migration table. Oneofs are exposed as discriminated unions (switch (msg.result.case)) instead of a maze of per-case getters, reducing boilerplate for consumers of generated types.

Used by 16 apps in this directory

TypeScript
82%
AGPL 3.0

OpenStatus

Devops · Monitoring

9,221

Open-source status pages and uptime monitoring with global synthetic checks, monitoring-as-code, and AI agent integration via MCP.

View details
77
Repo Health
82
Technical
69
Dependency
Built with
TypeScript 82%
MDX 14%
Updated 1 weeks ago
Go
82%
AGPL 3.0

PeerDB

Data Engineering · Databases

3,309

Postgres-native ETL that streams change data capture in real time to Snowflake, BigQuery, ClickHouse, S3, and Kafka — up to 10x faster than general-purpose pipelines, managed through a familiar Postgres SQL interface.

View details
89
Repo Health
76
Technical
66
Dependency
Built with
Go 82%
TypeScript 12%
Updated 1 weeks ago
Python
55%
Other

PostHog

Ab Testing Experimentation · Analytics · Developer Tools

40,397

The all-in-one open source product platform combining analytics, session replay, feature flags, error tracking, AI observability, and a built-in data warehouse in a single self-hostable stack.

View details
92
Repo Health
80
Technical
65
Dependency
Built with
Python 55%
TypeScript 36%
Updated 1 weeks ago
Go
40%
Apache 2.0

Rill

Analytics · Data Engineering

2,962

The fastest BI tool for humans and agents — define metrics, models, and dashboards as code and query them instantly on ClickHouse or DuckDB.

View details
88
Repo Health
88
Technical
64
Dependency
Built with
Go 40%
TypeScript 38%
Svelte 21%
Updated 1 weeks ago
Go
90%
BSD 3

tau

Devops

5,180

Open-source, Git-native platform-as-a-service for building, deploying, and scaling fullstack apps on your own infrastructure with no DevOps required.

View details
71
Repo Health
82
Technical
65
Dependency
Built with
Go 90%
Updated 2 months ago
Go
59%
AGPL 3.0

Unkey

Developer Tools

5,475

An open-source developer platform for API infrastructure — issue and verify API keys, enforce global rate limits, route traffic through a gateway, and get per-key analytics and audit logs.

View details
91
Repo Health
70
Technical
68
Dependency
Built with
Go 59%
TypeScript 40%
Updated 1 weeks ago
Go
74%
AGPL 3.0

ZITADEL

Authentication

15,418

Open-source, API-first identity platform delivering multi-tenancy, Passkeys, OIDC, SAML, and SCIM without vendor lock-in.

View details
92
Repo Health
81
Technical
65
Dependency
Built with
Go 74%
TypeScript 12%
Updated 1 weeks ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers