Protobuf-ES

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

Library
npm
v2.14.0
1,650stars
Apache License 2.0

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
91/100Excellent
Development Activity96
Maintenance100
Community72
Maturity56
Momentum40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
84/100Excellent
Architecture88
Code Quality90
Innovation85
Learning Curve74

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
94%
MIT

Actual

Invoicing Finance

28,224

Local-first personal finance with envelope budgeting, end-to-end encryption, and multi-device sync — no subscription required.

View details
93
Repo Health
85
Technical
77
Dependency
Built with
TypeScript94%
Updated yesterday
TypeScript
89%
Other

anytype-ts

Knowledge Management · Note Taking · Collaboration

8,665

A local-first, end-to-end encrypted knowledge OS that lets you build notes, tasks, wikis, and entire apps — with your data stored offline and synced peer-to-peer.

View details
88
Repo Health
78
Technical
67
Dependency
Built with
TypeScript89%
Updated yesterday
Rust
67%
MIT

Bun

Developer Tools

95,452

An all-in-one JavaScript and TypeScript toolkit — one Rust-and-JavaScriptCore binary that replaces Node.js, npm, a bundler, and a test runner with faster equivalents.

View details
92
Repo Health
91
Technical
66
Dependency
Built with
Rust67%
C++19%
Updated today
Go
52%
MIT

Bytebase

Devops

14,396

An open-source database CI/CD and DevSecOps platform — schema migration review, GitOps-driven changes, data masking, and access control across MySQL, PostgreSQL, Oracle, Snowflake, MongoDB, and more.

View details
92
Repo Health
73
Technical
69
Dependency
Built with
Go52%
TypeScript39%
Updated today
TypeScript
97%
Apache 2.0

Cline

AI Code Assistants

66,453

An open-source AI coding agent that lives in your editor and terminal — reads and edits your codebase, runs commands, browses the web, and requires human approval for every action by default.

View details
90
Repo Health
74
Technical
67
Dependency
Built with
TypeScript97%
Updated today
TypeScript
75%
Apache 2.0

Fern

Developer Tools

3,761

Fern turns a single OpenAPI, AsyncAPI, or Protobuf definition into type-safe SDKs for nine languages and a hosted API documentation site, all from one CLI and one source of truth.

View details
90
Repo Health
86
Technical
67
Dependency
Built with
TypeScript75%
Updated today
Go
84%
MIT

Hatchet

AI Development · Developer Tools · Automation

7,749

A Postgres-backed orchestration engine for background tasks, AI agents, and durable workflows that replaces Redis queues and multi-datastore durable execution platforms with a single self-hostable service.

View details
88
Repo Health
83
Technical
69
Dependency
Built with
Go84%
PLpgSQL11%
Updated today
Rust
47%
MIT

Kuku

Note Taking

204

A local-first, open-source Markdown knowledge workspace for macOS — plain files, personal wiki and Second Brain workflows, AI-assisted diffs, and encrypted sync, built as an Obsidian alternative.

View details
73
Repo Health
67
Technical
68
Dependency
Built with
Rust47%
TypeScript40%
Updated 1 months ago
Go
51%
MIT

memos

Note Taking

62,350

Open-source, self-hosted note-taking built for quick capture — Markdown-native, lightweight, and fully yours.

View details
91
Repo Health
78
Technical
66
Dependency
Built with
Go51%
TypeScript48%
Updated today

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

Search