Email me

Dev · · 12 min read · Matt Busel

Filed under Rust Guides

34 critical GitHub outages since April. 98% of Rust still lives there

34 critical GitHub outages since April. 98% of Rust still lives there
On this page · 13 sections
  1. Key numbers
  2. Roku left. Hacker News already knew why
  3. How I checked: 14,999 crates, one field
  4. 98%: Rust lives at one address
  5. GitHub's own status page tells on it
  6. What actually breaks for a Rust dev when GitHub is down
  7. Our receipt: we got switched off, twice
  8. Everyone says they will leave. The data says nobody is
  9. Check your own project in 60 seconds
  10. Caveats
  11. Numbers so far, and my bet
  12. Broken build? Fixed in 24 hours
  13. Sources

Short answer: Rust depends on GitHub almost completely. I pulled the repository link of the 10,000 most-downloaded crates on crates.io on Oct 24, 2026: 95.7% point at github.com, the top 100 is 100% GitHub, and those crates carry 98.1% of all downloads. Over the same stretch GitHub's own status page logged 34 critical incidents since April 2026, after zero from Nov 2024 to Mar 2026. Your cargo build survives a GitHub outage. Logging in to crates.io, reading the source, filing a bug and Trusted Publishing do not.

TL;DR: Roku moved its developer repos from GitHub to GitLab today and Hacker News instantly guessed why: the outages. So I measured how exposed Rust is. Of the top 1,000 crates, 979 live on GitHub and only 21 do not. Brand-new crates are not leaving either: of the 2,999 crates published Oct 21 to 24, 90.0% point at GitHub and just 18 (0.6%) at Codeberg or GitLab.com. Meanwhile GitHub's major-or-critical incidents went from 3.2 a month to 8.4 a month. Our own game builds from 737 crates and 710 of them live on GitHub. Every row is in the CSV.

Key numbers

WhatNumberSource, checked Oct 24 2026
Top 100 crates (all-time downloads) with a github.com repo100 of 100Our crates.io API pull
Top 1,000 crates on GitHub97.9% (979)Our pull
Top 10,000 crates on GitHub95.7% (9,565)Our pull
Share of the top 10,000's downloads that are GitHub-hosted crates98.1% of 502.6 billionOur pull
Newest 2,999 crates (Oct 21 to 24) on GitHub90.0% (Codeberg + GitLab.com: 0.6%)Our pull
GitHub incidents rated "critical", Apr to Oct 24 202634 (0 from Nov 2024 to Mar 2026)githubstatus.com history
Major + critical incidents per month3.2 before April, 8.4 sincegithubstatus.com history
Ways to log in to crates.io1 (GitHub)crates.io team, Jul 13 2026
Our game LAWN WAR: dependencies hosted on GitHub710 of 737 (96.3%)Our Cargo.lock

Download the data (CSV, 14,999 rows: every crate in the three lists with its rank, repository URL, host, forge, downloads and created date) and GitHub's incidents by month (CSV, 24 months by severity).

Animated bar chart, share of crates.io crates whose source repository is on github.com, Oct 24 2026: top 100 crates 100%, top 1,000 97.9%, top 10,000 95.7%, top 10,000 weighted by downloads 98.1%, newest 2,999 crates (Oct 21 to 24) 90%.
Rust lives at one address. Our crates.io API pull, Oct 24 2026. Rendered with our game engine.

Roku left. Hacker News already knew why

This morning Roku announced that its developer repositories now live on GitLab instead of GitHub. It hit the Hacker News front page within the hour. Roku gave no reason, and the thread filled one in anyway. The reply that sums it up: "like having a dozen outages in the last couple months isn't a good enough reason why?"

That guess is not crazy. GitHub's own status page shows 18 incidents in the first 24 days of October, six of them rated critical. On Oct 7 alone there were two critical incidents with Git Operations, Issues, Actions and Pull Requests. And Roku is not first. Zig moved to Codeberg in November 2025, with Andrew Kelley writing that GitHub's "priorities and the engineering culture have rotted". In April, Mitchell Hashimoto said Ghostty is leaving: "This is no longer a place for serious work if it just blocks you out for hours per day, every day."

So here is the question nobody in the Rust world wants to put a number on: if GitHub goes dark, or decides you are gone, how much of Rust goes with it? Yesterday's piece measured Europe's kill switch in DNS. This one measures Rust's in Cargo.toml.

How I checked: 14,999 crates, one field

Every crate on crates.io can list a repository URL in its Cargo.toml. That field is where the source, the issues, the pull requests and usually the CI live. I pulled it from the crates.io API at one request per second with a descriptive User-Agent, for three lists:

  • Top 10,000 by all-time downloads (the crates everything is built on).
  • Top 2,000 by recent downloads (the last 90 days, so old giants don't skew it).
  • The 2,999 newest crates, published Oct 21 to 24 2026 (where new code is choosing to live right now).

Then I sorted each URL by host: github.com, gitlab.com, self-hosted GitLab (Tor Project, freedesktop, Redox OS, GNOME), Codeberg, SourceHut, Bitbucket, other self-hosted servers, or no repository at all. For the outage side I pulled GitHub's full incident history from its status page (24 months, every incident with the severity GitHub itself gave it). The scripts take about four minutes end to end.

98%: Rust lives at one address

The top 100 crates are 100% GitHub. serde, tokio, syn, rand, regex, every one. The top 1,000 is 97.9%. The top 10,000 is 95.7%, and when you weight by downloads it climbs to 98.1% of 502.6 billion downloads, because the crates that left are small. The recent-downloads list says the same thing: 97.3% of the 2,000 hottest crates, 98.5% of their downloads.

Who are the landlords inside GitHub? In the top 1,000 the biggest owners are RustCrypto (57 crates), rust-lang itself (40), David Tolnay (31), tokio-rs (28) and, fun detail, Microsoft's own GitHub org with 22. The company that owns the platform also owns a slice of the crates on it.

Here is everyone in the top 10,000 who is not on GitHub. It is 435 crates, and 169 of those list no repository at all, which is not an escape plan, just a missing field.

Horizontal bar chart of the 435 crates in the top 10,000 that do not point at github.com: GitLab.com 90, self-hosted GitLab 83, Codeberg 56, other own servers 26, SourceHut 9, Bitbucket 2, no repository listed 169.
GitLab and Codeberg together hold 229 of the top 10,000. Our crates.io pull, Oct 24 2026.

And here are all 21 crates in the top 1,000 that live somewhere else. If you want a list of maintainers who already did the thing everyone on Hacker News says they will do "someday", this is it:

RankCrateWhere it lives
137redox_syscallgitlab.redox-os.org
157spinCodeberg
348dirsCodeberg
364dunceGitLab.com
371, 373proc-macro-error (+ -attr)GitLab.com
374constant_time_eqCodeberg
375openssl-macrosno repository listed
446oorandomSourceHut (hg.sr.ht)
482tiny-keccakno repository listed
504, 524, 676redox_users, libredox, seahashgitlab.redox-os.org
592protobufno repository listed
751gethostnameCodeberg
931, 935scc, sddCodeberg
967, 997secp256k1 (+ -sys)git.rust-bitcoin.org
976enum_dispatchGitLab.com
994version-compareGitLab.com

Three of those (openssl-macros, tiny-keccak, protobuf) list no repository on crates.io, so they may well be on GitHub anyway. Strictly, the top 1,000 has 18 crates that point somewhere else on purpose.

GitHub's own status page tells on it

I didn't count outages from Downdetector or angry posts. This is GitHub grading itself, month by month, since Nov 2024:

Stacked bar chart of GitHub status page incidents per month from Nov 2024 to Oct 2026 by severity. Monthly totals rise from 7 in Nov 2024 to a peak of 37 in Feb 2026. Critical incidents first appear in April 2026: April 3, May 8, June 4, July 6, August 5, September 2, October 6 (first 24 days).
34 critical incidents since April 2026, none labelled critical before. githubstatus.com history, pulled Oct 24 2026.

From Nov 2024 to Mar 2026 GitHub posted 308 incidents and rated none of them critical; 55 were major, about 3.2 a month. From April 2026 to today it posted 157, and 34 were critical plus 25 major: about 8.4 serious incidents a month, more than 2.5 times the old rate. The worst single month for raw count was February 2026 (37 incidents), which lines up with IncidentHub's tracker (257 incidents May 2025 to April 2026, February the worst).

Fair caveat: the "critical" label shows up for the first time in April, so part of that jump is GitHub labelling harder. Fine. Then look at major plus critical together, which is the honest comparison, and it still more than doubled.

GitHub has said this out loud. After the 7 hour 47 minute outage on Aug 17, CTO Vlad Fedorov wrote that traffic hit a new peak and "a critical infrastructure component in our Central US data center failed to scale with it", that a Copilot "client-side retry loop" made recovery worse, and that "Azure serves roughly 58% of GitHub's platform load", up from 12% in May. Translation: GitHub is moving house onto Azure while Copilot traffic stampedes through the hallway.

And the AI part is not a footnote. Of GitHub's last 50 incidents (Aug 12 to Oct 23), 13 were Copilot or AI-model incidents ("Grok 4.6 and Grok 4.7 Service Issues", "Elevated errors on Fable 5 due to upstream provider", "Degradation with Gemini 3.8 Flash"), 19 hit Actions, and 5 hit Git Operations. My read, and it is a read: Microsoft runs GitHub as the storefront for Copilot now, and the boring parts Rust actually needs (git, issues, CI) get whatever reliability is left over. They will never say that out loud. The incident list says it for them.

What actually breaks for a Rust dev when GitHub is down

Good news first, because it is real: GitHub going down does not stop your build. Since Rust 1.70 Cargo uses the sparse index at index.crates.io by default and downloads crates from static.crates.io, so cargo build never touches github.com unless you added a git = dependency. I checked four of our own workspaces (823, 527, 326 and 200 packages): zero git dependencies, zero GitHub calls at build time.

Now the bad news. Everything around the build runs through one company:

Diagram of what keeps working and what stops for a Rust developer when GitHub is down. Keeps working: cargo build and cargo add (index.crates.io and static.crates.io), docs.rs pages, publishing with an existing API token. Stops: logging in to crates.io (GitHub is the only login), the source of 95.7% of top crates, their issues, PRs and security reports, Trusted Publishing (GitHub Actions or GitLab.com only), git dependencies pinned to GitHub URLs.
Your build survives a GitHub outage. Everything around it does not.
  • You can only log in to crates.io with GitHub. The crates.io team said it plainly in July: "signing in means 'Log in with GitHub', and your crates.io identity is your GitHub username." Native usernames are being built "as a prerequisite for eventually supporting login via other identity providers", with RFCs still to come (Tobias Bieniek for the crates.io team).
  • Trusted Publishing works with GitHub Actions or GitLab.com only. GitLab support landed in January; "self-hosted GitLab instances are not supported yet" (crates.io update, Jan 21 2026).
  • The source, the issues and the security reports for 95.7% of the top 10,000 sit on github.com. When it is down, so is every "where is this bug tracked?" link in your dependency tree.

Our receipt: we got switched off, twice

This isn't hypothetical for us. On Sep 28 our GitHub account went 404: profile, every repo, GitHub Pages, the API. GitHub's security log showed a staff suspension, an unsuspension a minute later, and a randomized password. It came back on Sep 30, and about an hour later it was suspended again. It was usable again on Oct 3. We never got a reason.

The fallout was not the code. It was everything that pointed at GitHub. The privacy-policy links for our iPhone apps lived on GitHub Pages, so they 404'd, and Apple rejected an app update under guideline 5.1.1 because the "privacy policy link not functional". We moved those pages to our own host and pointed our crates' repository links at GitLab: 64 of our 70 crates now say gitlab.com.

And still. Our game LAWN WAR builds from 737 crates.io packages. I looked every one up:

Horizontal bar chart of our game LAWN WAR's 737 crates.io dependencies by where their source lives: GitHub 710, GitLab.com 14, Codeberg 3, self-hosted GitLab 3, other 1, no repository listed 6.
We left GitHub. Our dependency tree did not: 96.3% of it is still there. LAWN WAR Cargo.lock, Oct 24 2026.

710 of 737 live on GitHub (96.3%). We left, and our dependency tree didn't. That is the whole story of Rust and GitHub in one chart: you can move your own repos in an afternoon. You cannot move Bevy, serde and tokio.

Everyone says they will leave. The data says nobody is

Timeline of exits from GitHub: Nov 26 2025 Zig moves to Codeberg; Apr 28 2026 Ghostty says it is leaving GitHub; Sep 28 to 30 2026 our GitHub account is suspended twice and 64 of our 70 crates now point at GitLab; Oct 24 2026 Roku moves its developer repos to GitLab; Oct 21 to 24 2026 the newest 2,999 crates are 90.0% on GitHub with 0.6% on Codeberg or GitLab.com.
Loud exits, quiet numbers. Sources in the image and below.

If developers were really fleeing, it would show up first in new crates, because a new crate has no stars, no issues and no history to lose. It doesn't. Of the 2,999 crates published from Oct 21 to Oct 24, 2,698 (90.0%) point at GitHub, 215 (7.2%) list no repository, and Codeberg plus GitLab.com together got 18 (0.6%). Among the top 10,000, GitLab.com has 90 crates and Codeberg 56. The exits are loud on Hacker News and close to invisible on crates.io.

Why? My bet is gravity, not love. Your users have GitHub accounts, so issues and PRs come in there. crates.io makes you have a GitHub account anyway, so the cheapest move is the default. And GitHub Actions is free CI that every Rust template already wires up. Leaving costs a maintainer real hours; staying costs them an outage now and then, which is somebody else's fault. Until crates.io accepts another login, the Rust ecosystem is not choosing GitHub. It is enrolled in it.

Check your own project in 60 seconds

From your project folder (needs jq):

# 1. Any git dependencies? These DO break when GitHub is down.
grep -c 'source = "git+' Cargo.lock

# 2. Where does the source of every dependency live?
cargo metadata --format-version 1 | jq -r '.packages[].repository // "none"' \
  | sed -E 's#^(git\+)?https?://(www\.)?##; s#/.*##' | sort | uniq -c | sort -rn

# 3. Is your CI or release pipeline GitHub-only?
ls .github/workflows 2>/dev/null

If line 1 prints anything above 0, pin those to a published version or vendor them (cargo vendor). If line 3 lists your release job, keep a crates.io API token somewhere safe as a fallback: cargo publish with a token talks to crates.io, not GitHub. For deciding whether a dependency is worth the risk at all, our Cargo.toml checker audits advisories, licenses and MSRV in the browser, and the live GitHub API status and crates.io status pages tell you which one is actually down.

Caveats

  • The repository field is self-reported. Some GitHub links are read-only mirrors (Ghostty plans to keep one), and some crates without a link live on GitHub anyway. It measures where crates point people, which is what breaks when the host does.
  • I sampled three lists (14,999 rows, 12,999 distinct crates), not all of crates.io. The lists are where nearly all downloads are.
  • Severity labels are GitHub's own, and "critical" only exists from April 2026. I compare major + critical to stay fair.
  • Roku gave no reason for its move. The outage explanation is Hacker News's guess, and mine; it is not Roku's.
  • Our account story is ours: one account, no reason given, so it proves the risk exists, not how often it happens.

Numbers so far, and my bet

MeasureOct 24 2026Rerun
Top 1,000 crates on GitHub97.9%Oct 24 2027 (bet: still above 95%)
Newest crates on Codeberg + GitLab.com0.6%Oct 24 2027 (bet: below 2%)
GitHub major + critical incidents per month8.4monthly
Ways to log in to crates.io1Oct 24 2027 (bet: still 1)

My bet: a year from now Rust is still 95%+ GitHub, and the first thing that changes it is not an outage. It is crates.io shipping a second login. So, the question: would you move your crate off GitHub if crates.io stopped requiring it, or is GitHub just where your users are and that's that?

More on the same beat: what the crates.io download count really measures (the study This Week in Rust featured), Europe's US kill switch, measured, and every Rust data piece on the Rust hub.

Broken build? Fixed in 24 hours

If a git dependency, a dead GitHub link or a CI move just broke your Rust build, send it to us. Fix my Rust build, $99: one build, dependency or advisory-upgrade problem, back to you as a patch or pull request within 24 hours of having the error and the repo. If we can't fix it in 24 hours, you get the full $99 back without asking. As featured in This Week in Rust.

Follow for one checked, data-backed answer to the fights Rust developers are having, every day.

Sources

First published here on tensorust.com on Oct 24, 2026. Related: GitHub API status, Cargo.toml checker, What crates.io downloads really are.

Up next

More on Rustcrates.io download count: 80% of ours arrived with a new versionWhat the crates.io download count really measures: 69 Rust crates, 90 days of daily data, 80% within a day of a publish, 0 outside dependents.Read it next →

Cite this

Free to cite and reuse under CC BY 4.0 with a link back. How it was collected: methods. Spotted an error? Corrections.

Get the next one by email.

What my AI agents tried this week, with the real numbers: what worked, what flopped, what made money. One email when there is something worth reading.

No spam, never sold. Every email has a one-click unsubscribe.

More: the author, related reading, share this, a free game

Try it yourself · Rust dev?

Check a crate before you depend on it

Release health, reverse deps, real downloads and the alternatives for 1000 crates.

In The Manual: on this topic

Explainers answer one question, short answer first. Guides walk you through it step by step.

Open The Manual →

Read next

All articles →

1M+ X impressions in 4 days, run by AI agents · 8 iPhone apps live on the App Store · 69 Rust crates on crates.io · 520 GitHub stars · O'BLOCK out now, free on Steam

Built by Matthew Busel · code on github.com/Mattbusel · numbers as of Oct 22, 2026, click any to check

Popular in the shop

All 124 tools →

Browse: Bundles and kitsHome, family and schoolMoney and businessAI toolsSports and fitnessMaking and hobbiesFood and drinkIndie dev and launchTrading and quant

Free: Landing page teardown iPhone app cost calculator LLM API cost calculator Paid online: $49 Launch Check App builds Articles FAQ