mirror of
https://github.com/jackwener/OpenCLI.git
synced 2026-09-14 18:25:42 +08:00
55088bbb28
New sites (8 commands):
- npm : search / package / downloads (registry.npmjs.org + api.npmjs.org)
- pypi : package / downloads (pypi.org + pypistats.org)
- crates : search / crate (crates.io)
- mdn : search (developer.mozilla.org)
- nvd : cve (services.nvd.nist.gov)
Extensions (5 commands; +1 dblp/author surfaced in index):
- hf : spaces (Hugging Face Spaces by likes / created_at / last_modified)
- dblp : venue (search dblp's venue registry by acronym/topic)
- coingecko : derivatives (perpetual / futures markets, 24h volume)
- stackoverflow : related (related questions for a given question id)
All commands hit public unauthenticated endpoints (Strategy.PUBLIC, browser:false),
typed-fail-fast on bad inputs (no silent fallback / clamp), and round-trip listing
ids into their detail commands where applicable.
Audits (all green vs baseline):
- typed-error-lint : 196 = 196 baseline, no new
- silent-column-drop : 103 = 103 baseline, no new
- listing-id-pairing : 13 advisory (was 12; +1 = dblp/venue with no
corresponding venue-detail command)
Doc coverage : 120/120 adapter dirs documented (+5 new doc pages, +4 updated)
Manifest : 722 entries (was 709; +13 commands)
Live verified:
- npm search react / npm package react / npm downloads react --period last-week
- npm downloads react --period 2025-01-01:2025-01-05
- pypi package requests / pypi downloads requests --period recent / overall
- crates search tokio / crates crate serde
- mdn search fetch
- nvd cve CVE-2021-44228
- hf spaces --limit 3
- dblp venue ICLR
- coingecko derivatives --limit 3
- stackoverflow related 79935770 --limit 3
- typed-error sanity: invalid CVE id, bad npm name, bad --period
2.1 KiB
2.1 KiB
crates.io
Mode: 🌐 Public · Domain: crates.io
Search and inspect crates on the public Rust crate registry. Both commands hit the unauthenticated crates.io/api/v1 directly.
Commands
| Command | Description |
|---|---|
opencli crates search <query> |
Search the public crates.io registry by keyword |
opencli crates crate <name> |
Single crate metadata (latest version, downloads, license, repo) |
Usage Examples
# Free-text search (name / keywords / description)
opencli crates search tokio --limit 10
opencli crates search "async runtime" --limit 20
# Single-crate detail (name from search rows)
opencli crates crate serde
opencli crates crate tokio
# JSON output
opencli crates search tokio -f json
Output Columns
| Command | Columns |
|---|---|
search |
rank, name, latestVersion, description, downloads, recentDownloads, repository, updated, url |
crate |
name, latestVersion, description, downloads, recentDownloads, versions, license, homepage, documentation, repository, keywords, categories, created, updated, url |
The name column from search round-trips into crate.
Options
search
| Option | Description |
|---|---|
query (positional) |
Free-text search query |
--limit |
Max results (1–100, default: 20). 100 is crates.io's per-page upper bound. |
crate
| Option | Description |
|---|---|
name (positional) |
crates.io crate name (e.g. serde, tokio). Must match Rust's identifier rule. |
Caveats
- crates.io requires a descriptive
User-Agentper the data-access policy. The adapter sets one automatically. licenseis sourced from the latest version row in the package's version index — crate-level metadata does not carry a license field.recentDownloadsis the rolling 90-day count exposed by the API;downloadsis the lifetime total.keywordsandcategoriesare joined with,for display.
Prerequisites
- No browser required — uses
crates.io/api/v1.