Gli sviluppatori del linguaggio Rust hanno avvisato che il 20 novembre 2023 verrà disattivato il supporto nel repository crate.io per i download non canonici che utilizzano nomi di pacchetti normalizzati con simboli di sottolineatura e trattino sostituiti. Il cambiamento è motivato dal desiderio di aumentare l'affidabilità e ottimizzare le performance.
Fino ad ora non importava se veniva utilizzata l'underscore o il trattino nel nome durante il download: crate.io convertiva automaticamente tali link nel formato corretto. Ad esempio, per un pacchetto caricato nel repository con il nome «nome_pacchetto», era possibile specificare durante il download «nome-pacchetto» e viceversa. Il repository include anche una protezione contro la registrazione di nomi simili, impedendo di caricare un pacchetto con il nome «nome-pacchetto» se esiste già un pacchetto chiamato «nome_pacchetto».
La presenza di una procedura di normalizzazione dei nomi richiede la chiamata di un gestore speciale, il che non consente di utilizzare direttamente le reti di distribuzione dei contenuti per servire le richieste di caricamento dei pacchetti. Inoltre, l'esplorazione delle varianti genera un ulteriore carico sui backend e sui database. L'analisi dei log ha mostrato che i nomi non canonici sono utilizzati solo nelle richieste con User Agent cargo-binstall/1.1.2, Faraday v0.17.6, Go-http-client/2.0, GNU Guile e python-requests/2.31.0. L'autore dell'utilità cargo-binstall, utilizzata per installare artefatti binari nei pacchetti, ha già apportato modifiche per tenere conto della prossima disattivazione del supporto per i nomi non canonici.
Fonte: opennet.ru
