Record in aggregate · metrics 2.10.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
3,948 of 3,948 indexed
Monthly downloads under inspection
1.5B registry-reported
Median health index
63 Moderate
Good or better
47% index 65 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.

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

Repositories
20%22%23%
Download volume
40%36%
BandRepositoriesDownloads / moVolume share
Exceptional211618M40%
Excellent778552M36%
Good88451M3.3%
Moderate91030.3M2.0%
Weak496393K0.0%
At Risk483245M16%
Critical18637.9M2.5%

Score shapes

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

Vitality62
1100
Community & Adoption56
1100
Sustainability & Governance64
1100
Engineering Quality67
1100
Security50
1100
AI Readiness43
1100

Category profile

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

Vitality
62
Community & Adoption
56
Sustainability & Governance
64
Engineering Quality
67
Security
50
AI Readinessunweighted
43

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
95% of 3,948
Automated tests
95% of 3,948
License detected
94% of 3,948
CI workflows
82% of 3,948
Linter configuration
57% of 3,948
Contributing guide
35% of 3,948
Documentation directory
31% of 3,948
Code of conduct
30% of 3,948
Security policy
14% of 3,948

Agent-era signals

AI agent instructions
18% of 3,948
One-command bootstrap
14% of 3,948
llms.txt
14% of 3,948

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 2,278
59 · 44–73
100 – 999 1,026
65 · 45–81
1,000 – 9,999 570
75 · 56–89
10,000 and more 74
91 · 82–96

By monthly downloads

Under 10K / month 205
63 · 56–78
10K – 1M 194
80 · 64–89
1M – 100M 63
90 · 75–95
100M and more 4
83 · 44–92

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.4
Pinned-Dependencies
1.7
Token-Permissions
2.1
Security-Policy
2.5
Code-Review
2.7
Dependency-Update-Tool
4.4
Maintained
5.2
CI-Tests
5.6
Vulnerabilities
7.7
Contributors
7.8
License
9.3
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
61616% of the record · 16% of 3,948 assessed
High-risk jurisdiction exposure
461.2% of the record · 1.2% of 3,787 assessed
Inorganic growth
150.4% of the record · 4.6% of 329 assessed
Malicious dependencies
90.2% of the record · 0.5% of 1,828 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 16 days of inspection.

Push recency
57%18%16%
Last pushRepositoriesShare
Pushed within 30 days2,24257%
31 – 90 days70718%
91 – 365 days3599.1%
Over a year64016%

Stewardship & resilience

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

2,509Organization-stewarded median 69
1,439Personal accounts median 53

Maintainer bus factor

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

1 maintainer
2,701
2 maintainers
780
3–5 maintainers
401
6+ maintainers
63

The dependency iceberg

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

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

Resolved packages per repository

0
87
1 – 5
506
6 – 20
1,370
21 – 50
492
51 – 200
604
201 – 500
159
501 – 1,000
111
Over 1,000
242

License landscape

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

MIT
2,368
Custom license
520
Apache-2.0
460
No license detected
238
BSD-2-Clause
83
BSD-3-Clause
57
GPL-3.0
56
GPL-2.0
41
AGPL-3.0
36
MPL-2.0
18

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 · Maven · RubyGems
94Exceptionalhealth index
react/react-native
A framework for building native applications using React
C++ · Kotlin · JavaScript★ 126.6K↓ 207M/moSep 16, 2026
MITSep 16, 2026 · metrics 2.10.0
npm · RubyGems
32At Riskhealth index
petkaantonov/bluebird
:bird: :zap: Bluebird is a full featured promise library with unmatched performance.
JavaScript★ 20.5K↓ 203M/moSep 17, 2026
MITSep 17, 2026 · metrics 2.10.0
npm · RubyGems
80Excellenthealth index
dsherret/ts-morph
TypeScript Compiler API wrapper for static analysis and programmatic code changes.
TypeScript★ 6,181↓ 194M/moSep 17, 2026
MITSep 17, 2026 · metrics 2.10.0
npm · RubyGems · Packagist
86Excellenthealth index
handlebars-lang/handlebars.js
Minimal templating on steroids.
JavaScript★ 18.7K↓ 150M/moSep 16, 2026
MITSep 16, 2026 · metrics 2.10.0
crates.io · RubyGems
80Excellenthealth index
GREsau/schemars
Generate JSON Schema documents from Rust code
Rust★ 1,411↓ 77.3M/moSep 16, 2026
MITSep 16, 2026 · metrics 2.10.0
npm · crates.io · RubyGems
94Exceptionalhealth index
facebook/flow
Adds static typing to JavaScript to improve developer productivity and code quality.
Rust · JavaScript★ 22.3K↓ 74.9M/moSep 16, 2026
MITSep 16, 2026 · metrics 2.10.0

Reading these figures

  • Every figure is computed from the latest published inspection of each repository, under the versioned methodology (currently metrics 2.10.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-10-24 06:30 UTC; the aggregate is recomputed hourly. The underlying data is available as JSON.