example usage "./crates-features.sh serde tokio anyhow tracing"
- Create a shell script that accepts crate names as input, fetches each crate’s newest version from the crates.io API, retrieves that version’s metadata, and prints the crate name if the features map is non-empty
- /api/v1/crates/{name}/versions returns version objects that include a features map. Non-empty ⇒ activatable features.
- The per-crate endpoint exposes the newest version number, which you can query directly. If absent, list versions and pick the first
- Handle HTTP errors and timeouts. crates.io enforces polite crawling
- If max_version empty, call /api/v1/crates/${crate_name}/versions and pick the first non-yanked version’s .num.
- Ensure delay is not too short for crates.io’s crawler policy.