Organizata Rust Foundation publikoi statistikat, sipas të cilave nga 127 mijë paketa të rëndësishme të paraqitura në katalogun crates.io, më shumë se 24 mijë (19.11%) përdorin fjalën kyçe "unsafe" për të përfshirë mundësi që lejojnë punë të pasigurt me memorien në blloqe të veçanta të kodit, siç janë dereferencimi i treguesve, thirrja e funksioneve të jashtme ose ndryshimi i variablave statikë. 34.35% e paketimeve bëjnë thirrje direkte në funksione nga crate-paketa të tjera, ku përdoret moda "unsafe".
Vërehet se në shumicën e rasteve, përdorimi i mënyrës "unsafe" është i justifikuar nga thirrja e kodit të shkruar në gjuhë të tjera ose aksesimi i bibliotekave në C/C++. Paketa me numrin më të madh të thirrjeve në mënyrën "unsafe" është e njohur si crate-paketa windows, e ndërtuar nga kompania Microsoft, e cila është një mbështetje për API-në e platformës Windows. Kjo paketë ka gjithsej 36 milion shkarkime. Unsafe gjithashtu përdoret në paketat më të njohura syn (470 milion shkarkime), proc-macro2 (354 milion shkarkime) dhe libc (345 milion shkarkime).
Për identifikimin e problemeve në kodin që ekzekutohet në mënyrën "unsafe", projekti po zhvillon interpretorin Miri, i cili lejon përcaktimin e qasjeve jashtë kufijve të bufeve, përdorimin e memorjes pas çlirimit të saj, përdorimin e të dhënave të pa inicializuara në mënyrë të papërshtatshme, shkeljen e invariancës së tipeve bazë (p.sh., mos përputhja e bool me vlerat 0 ose 1), shkeljen e rregullave të pronësisë së objekteve, shfaqjen e gjendjeve të garës dhe rrjedhjet e memorjes.
Burimi: opennet.ru
