crates.io crate name checker and rules
A brand claims its name on crates.io as a crate name, crates.io/crates/yourname. Our check looks up that crate. How our checks work
What can a crates.io crate name contain?
ASCII letters, numbers, hyphens and underscores, starting with a letter, up to 64 characters.
| Character | Allowed? | Where |
|---|---|---|
| Letters a to z | Yes | First character must be a letter |
| Numbers 0 to 9 | Yes | Not first |
| Hyphen (-), underscore (_) | Yes | Not first |
| Anything else | No |
Capitals don't make a new name, and my-crate and my_crate count as the same crate. Reserved names, such as the Windows file name nul, are rejected.[1, 3]
How do you publish your first crate on crates.io?
Log in with GitHub, verify your email, then publish with Cargo.
What should you know before you claim a crates.io name?
Names are first come, first served, and a publish is permanent.
| Fact | What it means |
|---|---|
| One crate per name | Once a name is taken, no other crate can use it |
| Permanent | A version can't be overwritten, and its code can't be deleted |
| Yanking | Stops new projects depending on a version; it deletes nothing |
| Deleting | Allowed only under set conditions, such as within 72 hours of publishing |
| No squatting | Content that exists only to reserve a name is prohibited |
What if someone already has your crates.io name?
Ask the owner. The crates.io team won't transfer a crate without the current owner's approval, and follows the Rust Foundation's legal decisions on trademark issues.[4]
Which platforms should you claim with crates.io?
GitHub, npm, PyPI, X and the .com.
Checks crates.io, GitHub, npm, PyPI, X and the .com in one search.
Sources (5)
- PrimaryCargo Book: The manifest format
- PrimaryCargo Book: Publishing on crates.io
- PrimaryCargo Book: Registry index, name restrictions
- Primarycrates.io: Usage policy, read from its source file in the crates.io repository
- PrimaryZero To 1000's platform catalog: crates.io cost and rules