protocolbuffers/protobuf - Open Source PR Review Scorecard

Protocol Buffers - Google's data interchange format

C-Rank Grade: A (Welcoming) - 64/100

External PR Merge Rate: 15%

Response Time: -

First Timer Success: 8%

Frequently Asked Questions

Is protocolbuffers/protobuf welcoming to first-time open-source contributors?

protocolbuffers/protobuf has a recorded first-timer success rate of 8.2%. Repositories ranked A typically provide actionable feedback during code reviews and actively nurture new community contributors.

How fast can I expect code review feedback on my pull request?

Maintainers in protocolbuffers/protobuf respond to incoming external pull requests in approximately 0.0 hours on average. Keeping PRs focused on single tasks and ensuring tests pass helps maintainers review faster.

What does the 63.8 C-Rank™ score (A Tier) represent?

The C-Rank™ system evaluates GitHub projects on a 0–100 scale using real data: PR merge rates, review turnaround time, active maintainer presence, and first-time contributor success. A score of 63.8 places protocolbuffers/protobuf in the A tier.

What is the external contributor pull request merge rate for protocolbuffers/protobuf?

The external contributor pull request merge rate for protocolbuffers/protobuf is 15.0%, based on public PR activity from non-core contributors.

Are there Good First Issues available in protocolbuffers/protobuf?

protocolbuffers/protobuf currently has 6 active issue(s) tagged with beginner-friendly labels like "good first issue", "beginner", or "up-for-grabs".

protocolbuffers
protocolbuffers/protobufA•Welcoming72.1k
GitHub
Back to Explorer
protocolbuffers

protocolbuffers/protobuf

72,102
Active (30d)A•Welcoming(64/100)C++

Protocol Buffers - Google's data interchange format

GitHub
Compare••
Jump to:

AI Maintainer Review Guidelines

Review Persona

Strict Quality Architect

Warmth Score
6.6/10
Patience Score
7.2/10
Nitpick Rate
43%

Rigorous architecture standards (66% critical review signals). Ensure PRs strictly follow guidelines before requesting review in protocolbuffers/protobuf.

Top PR Submission Do's

  • •Add unit tests with >80% coverage for modified code paths
  • •Use conventional commit messages and clean branch names
  • •Link relevant GitHub issue ID in PR description pre-flight checklist

Top PR Friction Pitfalls (Don'ts)

  • •Do not submit unlinked PRs without referencing an existing issue
  • •Do not mix refactoring and feature logic into a single commit
  • •Do not ping maintainers repeatedly within 24 hours of opening
Response Velocity
-
No reviewer activity recorded

Average Response Latency

Tracks hours until a maintainer leaves a review, comment, or PR response.

Merge Efficiency
15.0%
Selective PR acceptance rate

External Acceptance Rate

Percentage of community pull requests successfully merged into main.

First-Timer Success
8.2%
Accepts new contributor PRs

First PR Conversion

Rate at which developers submitting their first repository PR succeed.

Active Maintainers
71 core
Highly collaborative maintainer core
Diagnostic Health HUD
15.0%
Merge Gauge
8.2%
1st-Timer
Community Vibe8/100

Embed C-Rank Badge

Show contributors that your repository actively reviews and merges external pull requests.

GetMerged C-Rank badge for protocolbuffers/protobuf
[![GetMerged C-Rank](https://getmerged.abhishekco.de/api/badge/protocolbuffers/protobuf)](https://getmerged.abhishekco.de/protocolbuffers/protobuf?utm_source=github&utm_medium=badge)

Active Good First Issues (5)

View on GitHub

What version of protobuf and what language are you using? Version: v36.1 Language: C++, through the CMake protobuf_generate() function What supported operating system version are you using (e.g. Linux, Windows) ? Linux (Arch Linux, x86_64) What supported runtime / compiler version are you using (e.g. python version, gcc version) GCC 16.2.1, CMake 4.4.3, Ninja 1.13.2 What did you do? put the below CMakeLists.txt in an empty directory. It writes a .proto into the build tree and passes that directory to protoc with --proto_path in PROTOC_OPTIONS: cmake_minimum_required(VERSION 3.16) project(repro CXX) find_package(protobuf CONFIG REQUIRED) set(gen_dir ${CMAKE_CURRENT_BINARY_DIR}/gen) file(WRITE ${gen_dir}/foo.proto "syntax = \"proto3\";\nmessage Foo { int32 x = 1; }\n") protobuf_generate(OUT_VAR srcs PROTOS ${gen_dir}/foo.proto PROTOC_OPTIONS --proto_path=${gen_dir}) add_custom_target(gen ALL DEPENDS ${srcs}) Configure with the build dir outside the source dir: cmake -S . -B ../

📅 Opened Sep 25, 2026💬 5 comments
Quality: 75/100Contribute

The proto3 JSON mapping encodes 64-bit integers, and optionally other numeric types, as JSON strings. When that string contains non-ASCII decimal digits, the three first-party implementations do not agree: Python and Java accept them, C++ rejects them. The same JSON document is therefore a valid message on two implementations and a parse error on the third. Repro probe.proto: syntax = "proto3"; package probe; message P { string s = 1; int32 i32 = 3; int64 i64 = 4; uint32 u32 = 5; double d = 6; } Python (protobuf runtime 7.36.2): from google.protobuf import json_format import probe_pb2 as M json_format.Parse('{"i64":"123"}', M.P()).i64 # 123 <- ASCII control json_format.Parse('{"i64":"١٢٣"}', M.P()).i64 # 123 <- Arabic-Indic U+0661-0663 json_format.Parse('{"i64":"1٢2"}', M.P()).i64 # 122 <- mixed ASCII + Arabic-Indic json_format.Parse('{"i64":"१२३"}', M.P()).i64 # 123 <- Devanagari json_format.Parse('{"i64":"abc"}', M.P()) # ParseErr

📅 Opened Sep 19, 2026💬 1 comment
Quality: 65/100Contribute

A vulnerability has been identified in the Protocol Buffers C++ library, specifically within the google::protobuf::MessageLite::ParseFromArray method. This issue arises from improper handling of the size parameter, leading to an integer signedness error when a negative value is provided. Vulnerability Details Type: Integer Signedness / Integer Overflow Component: google::protobuf::MessageLite File: protobuf/src/google/protobuf/message_lite.cc Method: ParseFromArray(const void* data, int size) Root Cause Analysis The ParseFromArray implementation is as follows: bool MessageLite::ParseFromArray(const void* data, int size) { return ParseFrom(as_string_view(data, size)); } The as_string_view helper (in the same file) performs a direct cast: inline absl::string_view as_string_view(const void* data, int size) { return absl::string_view(static_cast<const char*>(data), size); } If a negative int size is passed (e.g., -1), it is cast to a size_t by the absl::string_view constructor. On a 64-bit

📅 Opened Jun 17, 2026💬 8 comments
Quality: 80/100Contribute

What version of protobuf and what language are you using? Version: 35.0-rc2 (from BCR) Language: C++ What supported operating system version are you using (e.g. Linux, Windows) ? Windows 11 What supported runtime / compiler version are you using (e.g. python version, gcc version) MSVC What did you do? Attempt to build a protobuf target dependency on Windows 11. Steps to reproduce the behavior: On a Windows 11 fresh install, no WSL, no bash.exe Use Bazel and write a Protobuf target. In my specific case I installed opentelemetry-proto and tried to build a target which has dependency on metrics_proto here: https://github.com/bazelbuild/bazel-central-registry/blob/main/modules/opentelemetry-proto/1.8.0/overlay/BUILD.bazel Observe build failure What did you expect to see Successful build of a cc_proto_library() target What did you see instead? ERROR: C:/users/stepa/_bazel_stepa/hr2rqvqb/external/protobuf+/bazel/private/oss/toolchains/prebuilt/BUILD.bazel:25:20: ProtocAuthenticityCheck ext

📅 Opened May 9, 2026💬 2 comments
Quality: 45/100Contribute

IMPORTANT NOTE: SUBMITTED THIS ISSUE TO THE GOOGLE VRP TEAM FEW DAYS BACK. TEAM ACCEPT IT TO SUBMIT IT AS PUBLIC GITHUB ISSUE. Summary: The Protobuf pure-Python implementation is vulnerable to a recursion depth limit bypass in the MessageSet decoding path and a complete lack of recursion guards in the TextFormat parser. These issues allow an attacker to trigger a stack overflow (RecursionError) leading to a Denial of Service (DoS) in applications parsing untrusted data. Crucially, the MessageSet issue is a direct bypass of the fix implemented for GHSA-8qvm-5x2c-j2w7. Affected Component: protocolbuffers/protobuf (Python runtime) Version: Current main (Commit: 18da8e12d) Environment Tested: Python: 3.10.12 protoc: 3.12.4 (libprotoc) OS: Ubuntu 22.04 (WSL2) Technical Description While investigating the recent fix for GHSA-8qvm-5x2c-j2w7 (Recursion DoS in Python), I identified two significant regressions/oversights in how recursion depth is tracked. 1. MessageSet Depth Reset Bypass (Off

📅 Opened Mar 18, 2026💬 3 comments
Quality: 70/100Contribute
Looking for more C++ beginner tasks?Explore C++ GFI

Contributor Community Vibe Feedback

Rate what actually matters after opening a pull request here.

Have you contributed to this repo?

Rate your first-hand PR experience (review speed, maintainer responsiveness, and onboarding ease) to help other contributors.

3 ratings required
Maintainer helpfulness
Review speed
Beginner friendliness

Contributor Compatibility & Review Speed Analysis for protocolbuffers/protobuf

When evaluating whether to contribute to protocolbuffers/protobuf, response velocity and maintainer engagement are crucial. GetMerged continuously tracks pull request trajectories, first-comment latency, and code review rounds to help developers avoid submitting pull requests to backlogged repositories.

Currently, maintainers of protocolbuffers/protobuf acknowledge new external contributions in approximately -. Out of all submitted pull requests from non-core authors in the last 180-day window, 15.0% were successfully merged into the primary branch.

Frequently Asked Questions - Contributing to protocolbuffers/protobuf

01

Is protocolbuffers/protobuf welcoming to first-time open-source contributors?

protocolbuffers/protobuf has a recorded first-timer success rate of 8.2%. Repositories ranked Welcoming typically provide actionable feedback during code reviews and actively nurture new community contributors.

02

How fast can I expect code review feedback on my pull request?

The initial maintainer response time averages ~-. Keeping PRs scoped to single concerns and ensuring CI checks succeed will optimize review turnaround.

03

What does the 63.8 C-Rank™ score represent?

The C-Rank™ index scores repositories on a 0 to 100 scale using an objective formula: external PR merge rates, initial response speed, active maintainer count, and first-time contributor retention. A score of 63.8 places protocolbuffers/protobuf in the Welcoming tier.

04

What is the external contributor pull request merge rate for protocolbuffers/protobuf?

The external pull request merge rate is 15.0%. GetMerged isolates non-core community contributions so external developers get an accurate benchmark of PR acceptance probability.

05

Are there beginner Good First Issues open in protocolbuffers/protobuf?

Yes, protocolbuffers/protobuf currently has 6 active issue(s) tagged with beginner-friendly labels. You can inspect these directly from the repository issues tab.

GetMerged C-Rank™ Indexing Standard

All metrics displayed for protocolbuffers/protobuf are automatically retrieved via the public GitHub API and recalculated daily. Insider pull requests submitted by repository owners or organization members are excluded from merge rate calculations to preserve objective external contributor statistics.