protocolbuffers/protobuf

Protocol Buffers - Google's data interchange format

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 25 minutes ago
Added to GitGenius on January 28th, 2026
Created on August 26th, 2014
Open Issues & Pull Requests: 323 (+0)
Number of forks: 16,250
Total Stargazers: 71,818 (+1)
Total Subscribers: 2,008 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 3.2 days
Mean response time: 294.2 days
90th percentile: 1203.8 days
Tracked items: 1,108

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 96% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "untriaged" is answered fastest, typically in about 29 hours, while "enhancement" waits about 40 months. 23% of tracked open issues have had no activity in three months. Only 4% of issues opened in the past year have been closed.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 115
New in 7 days: 3
Closed in 7 days: 1
Avg open age: 562 days
Stale 30+ days: 93
Stale 90+ days: 61

Recent activity

Opened in 7 days: 2
Closed in 7 days: 0
Comments in 7 days: 7
Events in 7 days: 20

Top labels

  • inactive (746)
  • c++ (540)
  • python (316)
  • bug (302)
  • enhancement (256)
  • untriaged (251)
  • question (250)
  • java (241)

Detailed Description

Protocol Buffers is Google's language-neutral, platform-neutral mechanism for serializing structured data, maintained in the protocolbuffers/protobuf repository on GitHub. Written primarily in C++, the project provides both a protocol compiler (protoc) that translates .proto schema files into language-specific code and runtime libraries for multiple programming languages including C++, Java, Python, Objective-C, C#, Ruby, PHP, and JavaScript, with Go and Dart implementations maintained in separate repositories.

The repository serves as the canonical implementation of Protocol Buffers, a data interchange format designed for efficient serialization of structured information. The project is classified across multiple domains including serialization, structured data handling, data exchange, schema definition, code generation, RPC frameworks, and cross-language interoperability. Users can obtain the protocol compiler either as pre-built binaries from GitHub releases or by building from source, with the README explicitly recommending that users pin to release commits rather than tracking the main branch due to occasional source-incompatible changes and insufficiently-tested behavior in development versions.

The repository supports multiple build systems, including Bazel with both Bzlmod (for Bazel 8 and later) and legacy WORKSPACE configurations. Installation paths differ based on user needs: C++ users should follow dedicated C++ installation instructions in the src directory, while non-C++ users can download pre-built protoc binaries from the release page. Each language runtime has its own source directory with specific installation instructions, though Go and Dart implementations are maintained in external repositories rather than within the main protobuf project.

GitGenius activity tracking reveals significant ongoing maintenance and community engagement.

The project emphasizes stability through its support policy and version management strategy, with documentation available at protobuf.dev and a developer community organized through a Google Group for announcements and discussions. The repository includes example code in an examples directory and comprehensive tutorials in the developer guide, supporting users from initial learning through advanced implementation scenarios.