nlohmann/json - Open Source PR Review Scorecard

JSON for Modern C++

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

External PR Merge Rate: 58%

Response Time: -

First Timer Success: 55%

Frequently Asked Questions

Is nlohmann/json welcoming to first-time open-source contributors?

nlohmann/json has a recorded first-timer success rate of 54.5%. 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 nlohmann/json 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 59.9 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 59.9 places nlohmann/json in the A tier.

What is the external contributor pull request merge rate for nlohmann/json?

The external contributor pull request merge rate for nlohmann/json is 57.8%, based on public PR activity from non-core contributors.

Are there Good First Issues available in nlohmann/json?

nlohmann/json does not currently have active "good first issue" tags indexed, but accepts external contributions through standard GitHub issue tracking.

nlohmann
nlohmann/jsonA•Welcoming50.8k
GitHub
Back to Explorer
nlohmann

nlohmann/json

50,759
Active (30d)A•Welcoming(60/100)C++

JSON for Modern C++

GitHub
Compare••
Jump to:

AI Maintainer Review Guidelines

Review Persona

Strict Quality Architect

Warmth Score
7.1/10
Patience Score
7.5/10
Nitpick Rate
37%

Balanced & professional review environment in nlohmann/json. Maintains strict focus on technical quality and test standards.

Top PR Submission Do's

  • •Add unit tests with >80% coverage for modified code paths
  • •Run repository linter and code formatters locally before pushing
  • •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
57.8%
Moderate PR acceptance rate

External Acceptance Rate

Percentage of community pull requests successfully merged into main.

First-Timer Success
54.5%
Strong first-timer PR acceptance rate

First PR Conversion

Rate at which developers submitting their first repository PR succeed.

Active Maintainers
40 core
Highly collaborative maintainer core
Diagnostic Health HUD
57.8%
Merge Gauge
54.5%
1st-Timer
Community Vibe39/100

Embed C-Rank Badge

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

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

Active Good First Issues (3)

View on GitHub

Description docs/mkdocs/docs/features/binary_formats/messagepack.md states that strings, byte strings, arrays, and objects with more than 4294967295 elements/bytes "can not be converted to a MessagePack value". Nothing in the writer enforces that, and the same page also promises "Any MessagePack output created by to_msgpack can be successfully parsed by from_msgpack". All four size-prefixed cases in write_msgpack end their if/else if chain at std::uint32_t with no final else: value type site largest branch string binary_writer.hpp:554-587 0xDB str 32 array binary_writer.hpp:589-609 0xDD array 32 binary binary_writer.hpp:619-686 0xC6/0xC9 bin 32 / ext 32 object binary_writer.hpp:702-722 0xDF map 32 When N exceeds UINT32_MAX no branch runs, so no header byte is written at all and the writer proceeds straight to the payload. Two failure modes: array / object — the elements are written through real iterators, so to_msgpack() returns successfully with a headerless, corrup

📅 Opened Jul 27, 2026💬 3 comments
Quality: 90/100Contribute

Description write_cbor() serializes object keys by calling itself on the key: json/include/nlohmann/detail/output/binary_writer.hpp Lines 403 to 407 in 8ec98e2 for (const auto& el : *j.m_data.m_value.object) { write_cbor(el.first); write_cbor(el.second); } el.first is a string_t, but the parameter is const BasicJsonType&, so each key is implicitly converted to a temporary basic_json — which heap-allocates a string_t (plus its buffer for keys beyond SSO) — purely to reach the value_t::string case a few lines above. write_msgpack() has the identical pattern. The UBJSON and BSON writers in the same file already do it the direct way, writing the key's characters straight to the output adapter without c

📅 Opened Jul 27, 2026💬 4 comments
Quality: 80/100Contribute

Description RFC 8949 §3.2.3 requires that the chunks of an indefinite-length string be definite-length strings of the same major type: Each chunk of an indefinite-length string is a definite-length string of the same major type. get_cbor_string() and get_cbor_binary() read each chunk by recursing into themselves (binary_reader.hpp:1025-1037 and 1125-1137), and the recursive call re-enters the full switch including the 0x7F/0x5F case. So a chunk may itself be an indefinite-length string, to arbitrary depth, and the library accepts it. The cross-major-type rule is already enforced correctly — a byte-string chunk inside a text string is rejected, and vice versa. It is only the "definite-length" half of the rule that is missing. Secondary effect: because the nesting is unbounded, 0x7F repeated ~50 000 times segfaults. That aspect overlaps with #5104 / #5293, but a depth guard alone would only turn the crash into a clean parse_error — the two-level case below would still be accepted

📅 Opened Jul 27, 2026💬 1 comment
Quality: 80/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 nlohmann/json

When evaluating whether to contribute to nlohmann/json, 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 nlohmann/json acknowledge new external contributions in approximately -. Out of all submitted pull requests from non-core authors in the last 180-day window, 57.8% were successfully merged into the primary branch.

Frequently Asked Questions - Contributing to nlohmann/json

01

Is nlohmann/json welcoming to first-time open-source contributors?

nlohmann/json has a recorded first-timer success rate of 54.5%. 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 59.9 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 59.9 places nlohmann/json in the Welcoming tier.

04

What is the external contributor pull request merge rate for nlohmann/json?

The external pull request merge rate is 57.8%. 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 nlohmann/json?

nlohmann/json does not have open beginner labels indexed currently, but external PRs for bugs and documentation improvements are evaluated via normal issue triage.

GetMerged C-Rank™ Indexing Standard

All metrics displayed for nlohmann/json 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.