Files
wehub-resource-sync 9b395f5cc3
E2E Headed Chrome / e2e-headed (macos-15) (push) Has been cancelled
E2E Headed Chrome / e2e-headed (ubuntu-latest) (push) Has been cancelled
E2E Headed Chrome / e2e-headed (windows-latest) (push) Has been cancelled
CI / build (macos-latest) (push) Has been cancelled
CI / build (ubuntu-latest) (push) Has been cancelled
CI / build (windows-latest) (push) Has been cancelled
CI / unit-test (push) Has been cancelled
CI / bun-test (push) Has been cancelled
CI / adapter-test (push) Has been cancelled
CI / smoke-test (macos-latest) (push) Has been cancelled
CI / smoke-test (ubuntu-latest) (push) Has been cancelled
Security Audit / audit (push) Has been cancelled
Build Chrome Extension / build (push) Has been cancelled
Trigger Website Rebuild (Docs Updated) / dispatch (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:39:48 +08:00

63 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
```bash
# 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 (1100, 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-Agent` per [the data-access policy](https://crates.io/data-access). The adapter sets one automatically.
- `license` is sourced from the **latest version row** in the package's version index — crate-level metadata does not carry a license field.
- `recentDownloads` is the rolling 90-day count exposed by the API; `downloads` is the lifetime total.
- `keywords` and `categories` are joined with `, ` for display.
## Prerequisites
- No browser required — uses `crates.io/api/v1`.