protobuf.js

A fast, conformant JavaScript and TypeScript implementation of Protocol Buffers, no protoc required

Library
npm
v8.8.1
10,601 stars
Custom / Unknown

Repository Health

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

Technical Analysis

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

protobuf.js is a very fast, conformant, and unusually versatile JavaScript implementation of Google’s Protocol Buffers for Node.js and browsers. It works with .proto files out of the box, does not require the protoc compiler, and supports both runtime reflection and specialized code generation with strong TypeScript declarations.

Beyond basic encode/decode, protobuf.js supports programmatic schema definitions (no .proto file needed), transport-agnostic RPC services, optional extensions, and a companion CLI package (protobufjs-cli) for generating static code, TypeScript typings, and JSON reflection bundles — with an optional protoc-gen-pbjs path for teams that prefer a protoc-based toolchain.

What You Get

  • Runtime .proto file loading and reflection-based encode/decode with no protoc dependency
  • A protobufjs-cli add-on for generating static JS, TypeScript declarations, and JSON reflection bundles ahead of time
  • Programmatic schema definitions for building message types without a .proto file at all
  • Transport-agnostic Service/RPC support for wiring protobuf messages to any transport layer
  • Lightweight light/minimal build variants for bundle-size-sensitive browser deployments

Common Use Cases

  • Encoding/decoding Protocol Buffer messages in a Node.js backend or browser frontend without a native protoc toolchain
  • Generating static, tree-shakeable JS/TypeScript bindings from .proto schemas at build time via the CLI
  • Implementing gRPC-style or custom binary RPC services in JavaScript using protobuf.js’s transport-agnostic service layer
  • Interoperating with Protobuf-based systems written in Go, Java, Python, or C++ from a JS/TS codebase

Under The Hood

Architecture - the library’s core lives in src/ as a set of focused modules: root.js/namespace.js/type.js/field.js implement the reflective schema object model, encoder.js/decoder.js/reader.js/writer.js (under src/) handle wire-format serialization, parse.js/tokenize.js implement a hand-written .proto parser, and rpc/ provides the transport-agnostic Service abstraction; index.js, light.js, and minimal.js expose progressively smaller entrypoints for full/reflection-light/wire-only use cases. The separate cli/ package builds on this core to generate static code and TypeScript declarations ahead of time. Tech Stack - plain JavaScript (CommonJS) with hand-authored .d.ts TypeScript declaration files (index.d.ts, light.d.ts, minimal.d.ts), Node.js-based build/release tooling (release-please, GitHub Actions CI), and a google/ directory bundling well-known .proto types (Any, Timestamp, Struct, etc.). Code Quality - the tests/ directory contains 101 test files covering the parser, wire format, reflection API, and RPC layer, CI runs on every push via GitHub Actions, and the project has been continuously maintained by the community since dcodeIO’s original release, now under org-based stewardship. API Design - protobuf.load()/root.lookupType() gives a low-boilerplate entrypoint for dynamic schema loading, while the CLI’s generated static code gives TypeScript users compile-time-checked message types; the split between index/light/minimal entrypoints lets consumers explicitly trade reflection features for bundle size.

Used by 17 apps in this directory

TypeScript
78%
LGPL 3.0

Latitude

AI Agents · Monitoring

4,733

Open-source AI agent monitoring that catches what will break next before your users do.

View details
87
Repo Health
88
Technical
67
Dependency
Built with
TypeScript 78%
Python 11%
Rust 11%
Updated 1 weeks ago
TypeScript
96%
Apache 2.0

OneUptime

Monitoring

7,751

The complete open-source observability platform that replaces PagerDuty, Datadog, Sentry, and StatusPage with a single self-hostable system.

View details
91
Repo Health
81
Technical
65
Dependency
Built with
TypeScript 96%
Updated 6 days 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 6 days ago
TypeScript
98%
MIT

Promptfoo

AI Development

26,358

An open-source CLI and library for evaluating and red-teaming LLM applications — replace trial-and-error prompt engineering with systematic evals, vulnerability scanning, and CI/CD integration.

View details
90
Repo Health
73
Technical
67
Dependency
Built with
TypeScript 98%
Updated 6 days ago
TypeScript
98%
Apache 2.0

superlog

AI Agents · Monitoring

1,469

Open-source agentic observability that ingests OpenTelemetry signals, groups them into incidents, and deploys AI agents to investigate and fix your production bugs automatically.

View details
66
Repo Health
73
Technical
72
Dependency
Built with
TypeScript 98%
Updated 1 weeks ago
HTML
68%
AGPL 3.0

ToolJet

AI Agents · Low Code Platforms · No Code Platforms

41,123

Open-source AI-native platform to build and deploy internal tools, workflows, and AI agents with a visual drag-and-drop builder and 80+ data source integrations.

View details
94
Repo Health
81
Technical
63
Dependency
Built with
HTML 68%
JavaScript 20%
Updated 6 days ago
TypeScript
99%
Apache 2.0

Trigger.dev

AI Development · Automation · Developer Tools

16,606

Build and deploy fully-managed AI agents and background jobs in TypeScript — with no timeouts, durable retries, real-time observability, and elastic scaling built in.

View details
90
Repo Health
9
Technical
63
Dependency
Built with
TypeScript 99%
Updated 6 days ago
JavaScript
56%
MIT

Uptime Kuma

Monitoring

92,816

Self-hosted monitoring for every service you run — 23 monitor types, 95 notification channels, live dashboards, and public status pages with no vendor lock-in.

View details
92
Repo Health
81
Technical
62
Dependency
Built with
JavaScript 56%
Vue 41%
Updated 6 days 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