Rust-Crates-Scraper avatar
Rust-Crates-Scraper

Pricing

from $5.00 / 1,000 results

Go to Apify Store
Rust-Crates-Scraper

Rust-Crates-Scraper

Scrape Rust crates from crates.io. Get download stats, dependencies, health scores, and package metadata for supply chain analysis.

Pricing

from $5.00 / 1,000 results

Rating

0.0

(0)

Developer

Julia P.

Julia P.

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Categories

Share

Crates.io Scraper - Rust Package Registry Data

Extract metadata, download statistics, dependencies, and health scores from crates.io, the official Rust package registry.

What is this?

This actor scrapes the crates.io API to retrieve detailed information about Rust crates (packages/libraries). Use it to discover Rust libraries, analyze dependencies, assess package health, or monitor the Rust ecosystem.

Who is this for?

  • Security teams — Audit Rust dependencies for supply chain risk assessment
  • DevOps engineers — Monitor dependencies for maintenance status and updates
  • Software architects — Evaluate libraries before adding them to projects
  • VC analysts & researchers — Track trends in the Rust ecosystem
  • Recruiters — Find active Rust developers through package ownership
  • Developers — Discover well-maintained libraries for your next project

Features

  • 🔍 Search by keyword — Find crates matching terms like "web framework" or "database"
  • 📦 Lookup specific packages — Get data for known crate names
  • 📊 Health scoring — Customizable scoring based on downloads, maintenance, and trust signals
  • 🔗 Dependency analysis — See what each crate depends on
  • ↩️ Reverse dependencies — See which crates depend on each package
  • 📜 Version history — Get all published versions with release dates
  • 🎛️ Flexible filters — Filter by license, update recency, minimum downloads

Input Parameters

Search Mode (provide one)

ParameterTypeDescription
packageNamesarrayList of specific crate names to fetch
keywordstringSearch term to find matching crates

Filters

ParameterTypeDefaultDescription
maxResultsinteger50Maximum crates to return (1-500)
minDownloadsinteger0Minimum total downloads required
licenseFilterstringanyFilter by license: any, mit_apache, no_gpl
updatedWithinstringanyRecency filter: any, 6months, 1year
sortBystringhealthScoreSort by: healthScore, downloads, recentDownloads, recentlyUpdated

Data Enrichment

ParameterTypeDefaultDescription
includeDependenciesbooleantrueFetch direct dependencies
includeReverseDependenciesbooleanfalseFetch crates that depend on this one
includeVersionHistorybooleanfalseFetch all published versions

Health Score Weights (0-10)

Customize how the health score is calculated based on what matters to you:

ParameterDefaultWhat it measures
downloadsWeight6Total adoption/usage
recentActivityWeight4Current momentum and trend
maintenanceWeight5How recently the crate was updated
reverseDepsWeight5Trust signal from other crates

Output

Each crate returns:

{
"name": "serde",
"description": "A generic serialization/deserialization framework",
"version": "1.0.193",
"license": "MIT OR Apache-2.0",
"totalDownloads": 250000000,
"recentDownloads": 15000000,
"createdAt": "2015-03-03T03:17:05Z",
"updatedAt": "2024-01-15T10:30:00Z",
"daysSinceUpdate": 5,
"repository": "https://github.com/serde-rs/serde",
"homepage": "https://serde.rs",
"documentation": "https://docs.rs/serde",
"cratesUrl": "https://crates.io/crates/serde",
"keywords": ["serde", "serialization"],
"categories": ["encoding"],
"yanked": false,
"healthScore": {
"score": 89,
"breakdown": {
"downloads": {"raw": 100, "weight": 6},
"recentActivity": {"raw": 60, "weight": 4},
"maintenance": {"raw": 100, "weight": 5},
"reverseDependencies": {"raw": 100, "weight": 5}
}
},
"dependencies": {
"count": 2,
"direct": [
{"name": "serde_derive", "requirement": "^1.0", "optional": true, "kind": "normal"}
]
},
"reverseDependencies": {
"count": 45000,
"top_dependents": ["tokio", "reqwest", "actix-web"]
}
}

Health Score Explained

The health score (0-100) helps you quickly assess crate quality. Each factor is scored 0-100, then combined using your weights.

Downloads Score

DownloadsScore
10M+100
1M+85
100K+70
10K+55
1K+40
100+25
<10010

Maintenance Score

Last UpdatedScore
< 30 days100
< 90 days80
< 6 months60
< 1 year40
< 2 years20
> 2 years5

Recent Activity Score

Based on ratio of recent downloads (90 days) to total downloads. Higher ratio = growing adoption.

Reverse Dependencies Score

DependentsScore
100+100
50+80
20+60
5+40
1+20
00

Example Use Cases

Find well-maintained web frameworks

  • Keyword: web framework
  • Updated within: Last 6 months
  • Maintenance weight: 10
  • Sort by: Health Score

Audit specific dependencies

  • Package names: serde, tokio, reqwest, hyper
  • Include reverse dependencies: true
  • Include version history: true
  • Keyword: async
  • Recent activity weight: 10
  • Sort by: Recent Downloads

Rate Limiting

This actor respects the crates.io crawler policy:

  • Maximum 1 request per second
  • Proper User-Agent identification

Processing time depends on options enabled:

  • Basic search: ~1 second per crate
  • With dependencies: ~2 seconds per crate
  • With reverse deps: ~3 seconds per crate
  • All options: ~4 seconds per crate

Data Source

All data comes from the official crates.io API. This actor does not scrape HTML — it uses the documented JSON API endpoints.

Rust packages, Rust libraries, cargo crates, Rust dependency analysis, supply chain