Discover, evaluate, score, and compare Rust crates for adoption — search crates.io, fetch metadata from 4 sources (crates.io API, docs.rs, GitHub API, RustSec advisory DB), apply a weighted 0-100 scoring model across adoption/maintenance/documentation/maturity/community/license, flag red concerns (unmaintained, advisories, no docs, single-maintainer), and recommend the best fit. Use when users ask "which crate should I use for X", "is this crate maintained/safe/popular", "compare these 3 crates…
Discover, evaluate, score, and compare Rust crates for adoption — search crates.io, fetch metadata from 4 sources (crates.io API, docs.rs, GitHub API, RustSec advisory DB), apply a weighted 0-100 scoring model across adoption/maintenance/documentation/maturity/community/license, flag red concerns (unmaintained, advisories, no docs, single-maintainer), and recommend the best fit.
Use when users ask "which crate should I use for X", "is this crate maintained/safe/popular", "compare these 3 crates", or need to pick a dependency before adoption; hand post-adoption governance (cargo-deny, license policy, advisory response) to rust-dependencies, semver and breaking-change classification to rust-semver, and manifest mechanics to rust-cargo-build.
Similar popular skills
Related neighbors and high-traction skills in the same topics — useful to compare before installing.
This skill owns the discovery + evaluation phase before a crate enters your Cargo.toml. It uses a bundled Python tool (scripts/crate_eval.py) to fetch signals from 4 sources and produce a weighted 0-100 score with a letter grade (A/B/C/D/F), red-flag list, and a recommendation. It does not own post-adoption governance (rust-dependencies), manifest mechanics (rust-cargo-build), or semver (rust-semver).
Capability Boundaries
✅ Strengths
Search crates.io by keyword, category, or name — returns ranked candidates
Evaluate a single crate in depth: fetch metadata from crates.io + docs.rs + GitHub + RustSec
Compare 2+ crates side-by-side with subscore breakdown
Score each crate 0-100 across 6 dimensions: adoption (30), maintenance (25), documentation (15), maturity (15), community (10), license (5)
Flag red concerns: stale, advisories, no docs, low adoption with churn, single-maintainer bus factor, no source repo, license missing
Recommend the best fit, surfacing blocking concerns before the user adopts
Output as human-readable report or machine-readable JSON (for agent consumption)
⚠️ Prerequisites
Network access (the tool fetches from crates.io, docs.rs, GitHub, RustSec)
Python 3.9+ (no external pip packages — stdlib only)
Semver and breaking-change classification → rust-semver
Which std type to use instead of a crate → rust-stdlib
Data Privacy
This skill makes outbound HTTP requests to crates.io, docs.rs, GitHub, and RustSec. The User-Agent identifies the tool. No user data is collected or transmitted beyond the crate name in the URL path (which is public registry data). For private/proprietary crate names, prefer manual review.
Search — search "<domain keyword>" to surface candidates. Inspect the top 5-10 by downloads and recency.
Shortlist — pick 2-4 names with non-trivial adoption (≥1k downloads) and recent activity.
Compare — compare <names...> to get the side-by-side scorecard.
Investigate red flags — for the top pick, read the red-flag list. Block on security advisories; investigate stale or single-maintainer concerns.
Verify fit — the score measures health, not fitness. Read the crate's docs, check its API shape (rust-api-design lens), confirm it covers your use case.
Hand off — once adopted, set up cargo-deny (rust-dependencies) and pin version policy (rust-semver).
Reading the output
=== rbatis === A (92/100) — RECOMMENDED — strong fit, low risk
version 4.9.6 | 657,356 downloads (19,938 recent) | license: Apache-2.0
Subscores:
adoption █████████████░░░░░░░░░░░░ 27/30
maintenance ████████████░░░░░░░░░░░░░ 25/25
...
Red flags:
! license not declared
Grade + score — at-a-glance health
Subscores — which dimensions are strong/weak
Notes (+) — positive signals
Red flags (!) — concerns to investigate before adopting