in addition to url templates, this also includes special handling for crates.io: crates.io index config.json dl: "https://crates.io/api/v1/crates" request to "https://crates.io/api/v1/crates/{crate}/{vers}/download" will return a 302 redirect to "https://static.crates.io/crates/{crate}/{crate}-{vers}.crate". rather than follow the 302, this detects if the dl value is crates.io (`is_crates_io` method) and performs the redirect preemptively. in discussion with crates.io team on discord, @carol10cents indicated this would avoid need to throttle requests as they would go right to cdn instead of hitting crates.io webserver.
--filter-crates: limit downloads to crates with names matching supplied regex --dry-run: don't actually download --overwrite-existing: re-download even if .crate file already exists in output dir