Benchmark report

crates.io thumbnail

Is crates.io slow?

API response times from 6 cities

Slow from some locations

Mumbai waited 1555 ms, about 11× Montreal. The gap suggests some test locations reach a distant server.

Fastest
146 ms
Montreal
Slowest
1555 ms
Mumbai
Successful requests
100%
6 locations

Response time around the world

Amsterdam 676ms typicalSan Francisco 445ms typicalMontreal 146ms typicalSingapore 1315ms typicalTokyo 1202ms typicalMumbai 1555ms typical
  • CanadaMontreal
    146 ms
  • United StatesSan Francisco
    445 ms
  • NetherlandsAmsterdam
    676 ms
  • JapanTokyo
    1202 ms
  • SingaporeSingapore
    1315 ms
  • IndiaMumbai
    1555 ms

Why is Mumbai slower?

In the controlled run of 4 October every city connected to a nearby Fastly edge in 2 to 11 ms and finished the TLS handshake in 4 to 14 ms; the cache header named the local point of presence in each city. The time went into the two phases after that. Montreal waited 42 ms for the first byte and downloaded for 23 ms, 71 ms in all. Amsterdam waited 100 ms and downloaded for 249 ms; San Francisco 89 and 326 ms; Singapore 252 and 219 ms; Tokyo 170 and 572 ms; Mumbai 203 and 735 ms, 944 ms in all. A download that takes 23 ms in one city and 735 ms in another for the same 440 KB is what a body streamed from one distant origin through the edge looks like. That run was a quick one for Asia: on 12 of the 13 days Mumbai's daily median was above 1.5 seconds.

Click the location to see each stage.

ConnectTLSServer waitDownload
IndiaMumbai
944 ms
Finding the server
31 ms
Reaching the server
2 ms
Setting up security
4 ms
Waiting for the server
203 ms
Receiving the response: most of the time
735 ms
Total
944 ms

Finding the server is measured once per location, so it sits outside these bars. Open a city to see it.

Bars show the typical request, so the parts add up to its total. Why

Compare all locations

Click a city to see its stage-by-stage breakdown.

ConnectTLSServer waitDownload
NetherlandsAmsterdam
356 ms
Finding the server
3 ms
Reaching the server
2 ms
Setting up security
5 ms
Waiting for the server
100 ms
Receiving the response: most of the time
249 ms
Total
356 ms
United StatesSan Francisco
440 ms
Finding the server
25 ms
Reaching the server
11 ms
Setting up security
14 ms
Waiting for the server
89 ms
Receiving the response: most of the time
326 ms
Total
440 ms
CanadaMontreal
71 ms
Finding the server
11 ms
Reaching the server
2 ms
Setting up security
4 ms
Waiting for the server: most of the time
42 ms
Receiving the response
23 ms
Total
71 ms
SingaporeSingapore
481 ms
Finding the server
5 ms
Reaching the server
6 ms
Setting up security
4 ms
Waiting for the server: most of the time
252 ms
Receiving the response
219 ms
Total
481 ms
JapanTokyo
748 ms
Finding the server
174 ms
Reaching the server
2 ms
Setting up security
4 ms
Waiting for the server
170 ms
Receiving the response: most of the time
572 ms
Total
748 ms
IndiaMumbai
944 ms
Finding the server
31 ms
Reaching the server
2 ms
Setting up security
4 ms
Waiting for the server
203 ms
Receiving the response: most of the time
735 ms
Total
944 ms

The phases come from the controlled run of 4 October 2026. Typical and slower times pool the daily requests. 6 of 6 test locations included: Amsterdam, San Francisco, Montreal, Singapore, Tokyo, Mumbai.

Finding the server is measured once per location, so it sits outside these bars. Open a city to see it.

Bars show the typical request, so the parts add up to its total. Why

crates.io still feels slow?

Check crates.io’s status page
Registry incidents are posted there. A slow cargo build during one is not your network.
This is not a cargo build benchmark
Cargo reads the sparse index and downloads .crate files from static.crates.io, both served differently from this API document. Publishing, login and the website are not measured either.
The edge is close, the body is far
Four Fastly addresses across our six cities, and each city's cache header named its own local point of presence. Montreal was fastest in the controlled run and on 10 of the 13 daily runs, which suggests the origin is in eastern North America, and the three Asian cities pay for the whole 440 KB crossing from there.

Response time over the last 29 days

Daily median of 5 requests per location, 11 September 2026 to 10 October 2026.
025005000 ms11 Sept10 Oct
Show the numbers
DayAmsterdamSan FranciscoMontrealSingaporeTokyoMumbai
11 September 2026282 ms557 ms163 ms1393 ms1013 ms1623 ms
12 September 2026447 ms420 ms163 ms1362 ms1004 ms1628 ms
13 September 2026532 ms431 ms155 ms1444 ms1300 ms1627 ms
14 September 2026512 ms438 ms154 ms1414 ms1354 ms1632 ms
15 September 2026533 ms318 ms146 ms1382 ms997 ms1622 ms
16 September 2026522 ms175 ms145 ms1381 ms1324 ms1621 ms
17 September 2026692 ms424 ms143 ms1391 ms1279 ms1621 ms
18 September 2026664 ms300 ms146 ms497 ms1325 ms236 ms
19 September 2026687 ms402 ms134 ms705 ms982 ms1205 ms
20 September 2026691 ms524 ms57 ms1367 ms1026 ms1589 ms
21 September 2026668 ms419 ms155 ms1163 ms1016 ms1594 ms
22 September 2026537 ms420 ms144 ms1364 ms963 ms1204 ms
23 September 2026372 ms418 ms121 ms1377 ms1018 ms660 ms
24 September 2026659 ms411 ms145 ms1573 ms1310 ms1617 ms
25 September 2026185 ms173 ms142 ms1395 ms532 ms1215 ms
26 September 2026692 ms421 ms147 ms1378 ms1369 ms1613 ms
27 September 2026693 ms180 ms151 ms1365 ms1363 ms1595 ms
28 September 2026661 ms442 ms144 ms1353 ms2195 ms1594 ms
29 September 2026665 ms417 ms136 ms1377 ms1344 ms2609 ms
30 September 2026112 ms450 ms145 ms1434 ms1355 ms1608 ms
1 October 2026661 ms442 ms140 ms1878 ms190 ms1616 ms
2 October 2026685 ms454 ms209 ms1081 ms1197 ms1511 ms
3 October 2026696 ms440 ms217 ms1747 ms916 ms1681 ms
4 October 2026760 ms456 ms231 ms689 ms1202 ms1680 ms
5 October 2026352 ms447 ms56 ms923 ms929 ms1684 ms
6 October 2026519 ms445 ms222 ms1071 ms1186 ms213 ms
7 October 2026764 ms204 ms213 ms1089 ms1211 ms1502 ms
9 October 2026347 ms466 ms227 ms1138 ms1231 ms1503 ms
10 October 2026763 ms658 ms206 ms1375 ms924 ms1911 ms

About this measurement

GET crates.io/api/v1/crates/serde · 65 requests per location over 13 daily runs · 27 September 2026 to 10 October 2026

What we tested · Package registry. GET crates.io/api/v1/crates/serde: the serde crate's metadata, about 440 KB of JSON from a Heroku origin behind Fastly, seen uncached.

How LatencyRadar measures response time →

Technical details

Doesn’t measure: cargo build: index lookups and .crate downloads from static.crates.io, or the website.

One crates.io surface: the API metadata document for the serde crate, about 440 KB of JSON listing every published version. This is the request the crates.io website and API clients make to learn about a crate. It sits behind Fastly, but the responses we saw came from the origin rather than from the cache. It does not stand for cargo build: Cargo reads the sparse index and downloads .crate files from static.crates.io, and both are served differently. From outside we cannot see where the origin runs or why the document is served uncached. We see only that the Fastly edge nearest each city answered, and that the body arrived at a speed set by the distance behind that edge.

Between 27 September and 10 October 2026 the typical time ranged from 146 ms in Montreal to 1,555 ms in Mumbai, with Singapore at 1,315 ms, Tokyo at 1,202 ms, Amsterdam at 676 ms and San Francisco at 445 ms. Montreal's daily median sat at 136 to 151 ms until 1 October and at 206 to 231 ms from the 2nd, apart from one 56 ms day on 5 October. Mumbai stayed at 1,502 to 1,684 ms on 10 of the 13 daily runs, Amsterdam at 661 to 764 ms on nine, and San Francisco at 417 to 466 ms on ten. Most exceptions were one fast city on one day: Amsterdam's daily median fell to 112 ms on 30 September, Tokyo's to 190 ms on 1 October and Mumbai's to 213 ms on 6 October, and the controlled run of 4 October found medians of 481 to 944 ms in the three Asian cities against more than 900 ms on most days. A few went the other way: Tokyo took 2,195 ms on 28 September and Mumbai 2,609 ms on the 29th. From outside we cannot tell whether the document was cached at the edge on the fast days. PyPI, measured the same way on the same days from a cached document, took 11 to 68 ms.

Test locationTypical response timeSlower response timeRequests
Amsterdam676 ms777 ms65
San Francisco445 ms662 ms65
Montreal146 ms238 ms65
Singapore1315 ms1965 ms65
Tokyo1202 ms2445 ms65
Mumbai1555 ms2012 ms65

Typical: half of the requests finished within this time (technical: p50). Slower: 95% of requests finished within this time (technical: p95). Statistics

Request
GET crates.io/api/v1/crates/serde
Measured from
Amsterdam · San Francisco · Montreal · Singapore · Tokyo · Mumbai
Requests
Daily measurements from 27 September 2026 to 10 October 2026. 6 of 6 test locations included: Amsterdam, San Francisco, Montreal, Singapore, Tokyo, Mumbai. · 27 September 2026 to 10 October 2026
Timings taken
DNS, connect, TLS, waiting for the server, download
Report coverage
6 of 6 test locations included: Amsterdam, San Francisco, Montreal, Singapore, Tokyo, Mumbai.
Coverage changes
Mumbai (measured since 7 September 2026) joined this report on 21 September 2026. Earlier daily bands keep their previous location set.
Daily requests in each location
Amsterdam: 65 · San Francisco: 65 · Montreal: 65 · Singapore: 65 · Tokyo: 65 · Mumbai: 65
Typical response time
Median of the eligible daily requests in each included location.
Slower response time
The 95th percentile of the same eligible daily requests in each included location.

crates.io API

https://crates.io/api/v1/crates/serde

Independent measurement by LatencyRadar. Not affiliated with crates.io. · How we measure (v1.3)

How fast is your API around the world?

Run a free speed test from multiple cities and find out where your users are waiting. No setup, no account required.

Test my API

No account required · Takes about 30 seconds.

More benchmarks

All benchmarks →