CRATE Repository Ends Non-Canonical Download Support

The developers of the RUST language have announced that support for non-canonical downloads in the CRATE.io repository will be disconnected on November 20, 2023. Non-canonical downloads refer to normalized packet names with replaced symbols of emphasizing and hyphen. The motivation behind this change is to increase reliability and optimize performance.

Until now, it has not been necessary to specify emphasizing or hyphens in the name when loading packages from CRATE.io. The platform automatically redirected such links to the required type. For instance, if a packet named “Name_Set” was located in the repository, it was possible to indicate “Name-package” or vice versa. The repository also includes protection against similar names, preventing the placement of a package with the name “Name-package” if there is already a package named “Name_of_the_flower”.

The normalization procedure, which requires a special processor to be called, prevents the direct usage of content delivery networks for package loading requests. Moreover, the excessive number of options adds extra load on backends and databases. Log analysis revealed that non-canonical names are only used in requests with User Agents: Cargo-Binstall/1.1.2, Faraday V0.17.6, Go-Http-Client/2.0, GNU Guile, and Python-Requests/2.31.0. The author of the Cargo-BinStall utility, used for installing binary artifacts to packages, has already implemented changes to accommodate the impending discontinuation of support for non-canonical names.

/Reports, release notes, official announcements.