Record in aggregate · metrics 1.13.0

The state of RubyGems.

Aggregate statistics across every inspected repository publishing to RubyGems — how health distributes, where the download volume sits, and which practices are common or rare, measured against the whole record.

Inspected repositories
2,112 of 2,112 indexed
Monthly downloads under inspection
460M registry-reported
Median health index
56 Moderate
Good or better
19% index 70 and above

Health-index distribution

Latest health index of every inspected repository, in five-point intervals over the 1–100 scale.

Where the download volume sits

Combined monthly downloads by band, against repository counts.

9.0% of the monthly download volume under inspection flows through repositories below the good band — and the top 1% most-downloaded repositories carry 90% of the entire volume.

Repositories
18%46%27%
Download volume
85%
BandRepositoriesDownloads / moVolume share
Excellent3028M6.1%
Good372390M85%
Moderate96134.1M7.4%
At risk5756.7M1.4%
Critical174632K0.1%

Score shapes

The distribution behind each category median, in ten-point bins — where the record clusters, and where a category separates repositories or saturates.

Vitality54
1100
Community & Adoption62
1100
Sustainability & Governance64
1100
Engineering Quality62
1100
Security45
1100
AI Readiness32
1100

Category profile

Median category score across the scope. Ticks mark the whole-record median. Categories are documented in the methodology wiki.

Vitality
54
Community & Adoption
62
Sustainability & Governance
64
Engineering Quality
62
Security
45
AI Readinessunweighted
32

The state of practice

Share of inspected repositories where the practice is publicly evident. Reports that predate a signal are excluded from its basis, never counted as missing.

Engineering & community practice

README
97% of 2,112
License detected
95% of 2,112
Automated tests
94% of 2,112
CI workflows
79% of 2,112
Linter configuration
55% of 2,112
Contributing guide
38% of 2,112
Code of conduct
30% of 2,112
Documentation directory
25% of 2,112
Security policy
15% of 2,112

Agent-era signals

AI agent instructions
15% of 2,112
One-command bootstrap
12% of 2,112
llms.txt
0.4% of 2,112

Signals read by the unweighted AI Readiness category.

Does popularity mean health?

Median health index (dot) and the middle half of repositories (band) per popularity bracket, on the shared 1–100 scale.

By GitHub stars

Under 100 stars 1,001
54 · 44–62
100 – 999 642
55 · 44–67
1,000 – 9,999 417
64 · 52–74
10,000 and more 52
76 · 69–84

By monthly downloads

Under 10K / month 128
61 · 50–69
10K – 1M 58
70 · 58–76
1M – 100M 36
77 · 68–82
100M and more 1
74 · 74–74

Security under the microscope

Average OpenSSF Scorecard result per check across the scope, weakest first, on Scorecard's 0–10 scale. Check results are mostly all-or-nothing, so the average tracks how much of the record passes. Checks Scorecard reports inconclusive are excluded from scoring, never counted as zero; each row's tooltip carries its basis.

CII-Best-Practices
0.0
Fuzzing
0.1
Signed-Releases
0.5
Branch-Protection
1.0
SAST
1.3
Pinned-Dependencies
1.5
Token-Permissions
1.9
Security-Policy
2.3
Code-Review
2.8
Dependency-Update-Tool
4.3
Maintained
4.3
CI-Tests
4.8
Vulnerabilities
8.1
Contributors
8.4
License
9.4
Binary-Artifacts
9.7
Dangerous-Workflow
9.9
Packaging
10.0

Red flags

Findings that adjust a rating downward rather than scoring into it. Each is reported as a count, as a share of the whole record, and as a rate among the repositories where it could be determined at all.

Abandonment
1788.4% of the record · 8.4% of 2,112 assessed
High-risk jurisdiction exposure
1004.7% of the record · 4.9% of 2,044 assessed
Inorganic growth
150.7% of the record · 4.5% of 333 assessed
Malicious dependencies
1<0.1% of the record · 0.3% of 360 assessed

A red flag needs its own evidence, so its basis is smaller than the record. Growth authenticity is assessed only where day-by-day history was collected; dependency findings only where a dependency graph resolved. Repositories the evidence cannot answer for are left out of the basis rather than counted as passing.

The pulse

How recently each inspected repository last saw a push, at inspection time.

Half of the inspected repositories saw a push within 24 days of inspection.

Push recency
55%23%
Last pushRepositoriesShare
Pushed within 30 days1,15655%
31 – 90 days1688.0%
91 – 365 days29714%
Over a year49123%

Stewardship & resilience

Who stands behind the inspected repositories, and how many people the code depends on. Both are read by the governance category.

1,332Organization-stewarded median 61
780Personal accounts median 49

Maintainer bus factor

62% of inspected repositories depend on a single maintainer for the majority of their commits — including 17 with over a million monthly downloads.

1 maintainer
1,318
2 maintainers
504
3–5 maintainers
247
6+ maintainers
42

The dependency iceberg

Declared direct dependencies against the full resolved graph (direct plus transitive), across the 1,932 reports with a collected dependency graph.

The median repository declares 2 direct dependencies — and resolves to 13 packages in total.

Resolved packages per repository

0
57
1 – 5
372
6 – 20
764
21 – 50
267
51 – 200
268
201 – 500
63
501 – 1,000
42
Over 1,000
99

License landscape

The most common detected licenses across the scope (SPDX identifiers).

MIT
1,282
Custom license
331
Apache-2.0
210
No license detected
99
BSD-2-Clause
53
BSD-3-Clause
29
GPL-2.0
26
AGPL-3.0
20
GPL-3.0
20
CC0-1.0
13

Most relied upon

The most-downloaded repositories under inspection publishing to RubyGems — the records the figures above weigh heaviest. The rest is covered by the full catalogue · tag index.

npm · RubyGems · Packagist
74Goodhealth index
handlebars-lang/handlebars.js
Minimal templating on steroids.
JavaScript★ 18.7K↓ 166M/moJul 22, 2026
MITJul 22, 2026 · metrics 1.13.0
Go · Hex · Maven +4
79Goodhealth index
cucumber/messages
A message protocol for representing results and other information from Cucumber
C#★ 40↓ 30.1M/moJul 13, 2026
MITJul 13, 2026 · metrics 1.13.0
npm · Maven · RubyGems
74Goodhealth index
AppAndFlow/react-native-safe-area-context
A flexible way to handle safe area insets in JS. Also works on Android and Web!
TypeScript · Objective-C · Kotlin★ 2,743↓ 29.8M/moJul 22, 2026
MITJul 22, 2026 · metrics 1.13.0
npm · PyPI · Packagist +4
82Goodhealth index
cucumber/gherkin
A parser and compiler for the Gherkin language.
C★ 372↓ 27.8M/moJul 19, 2026
MITJul 19, 2026 · metrics 1.13.0
npm · Packagist · crates.io +4
83Goodhealth index
svix/svix-webhooks
The open source and enterprise-ready webhooks service 🦀
Rust · C#★ 3,301↓ 21.3M/moJul 15, 2026
MITJul 15, 2026 · metrics 1.13.0
npm · PyPI · RubyGems +2
84Goodhealth index
cucumber/cucumber-expressions
Human friendly alternative to Regular Expressions
Java · Go · C#★ 199↓ 16.4M/moJul 20, 2026
MITJul 20, 2026 · metrics 1.13.0

Reading these figures

  • Every figure is computed from the latest published inspection of each repository, under the versioned methodology (currently metrics 1.13.0). See the methodology · band scale.
  • Statistics describe the inspected record — software admitted for inspection, not a random sample of all open source. Admission follows the public-interest criteria.
  • Download figures come from package registries; registries that publish no monthly number (Maven Central, Go, NuGet, RubyGems) contribute no volume rather than zero. Coverage per ecosystem is documented in supported ecosystems.
  • Where a signal is unavailable in a report — an uncollected dependency graph, an inconclusive Scorecard check, a report predating a signal — the repository is excluded from that figure's basis, never counted against it.
  • Health indices are signals of publicly visible practice, not audits or warranties — how to read them is covered by the health index.
  • Figures computed 2026-07-23 05:46 UTC; the aggregate is recomputed hourly. The underlying data is available as JSON.