ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Rust Foundation ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ, Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈΠ· 127 ΡΡΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ crates.io, Π±ΠΎΠ»Π΅Π΅ 24 ΡΡΡΡΡ (19.11%) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ «unsafe» Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΠΈΡ Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ°ΠΌΡΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π±Π»ΠΎΠΊΠ°Ρ ΠΊΠΎΠ΄Π°, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠ°Π·ΡΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ, Π²ΡΠ·ΠΎΠ² Π²Π½Π΅ΡΠ½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . 34.35% ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΡΠΎΠ²Π΅ΡΡΠ°ΡΡ ΠΏΡΡΠΌΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ crate-ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², Π² ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΠΆΠΈΠΌ «unsafe».
ΠΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ, ΡΡΠΎ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΆΠΈΠΌΠ° «unsafe» ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½ΠΎ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΠΊΠΎΠ΄Π°, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌ Π½Π° Π‘/C++. ΠΠ°ΠΊΠ΅ΡΠΎΠΌ Ρ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠΌ ΡΠΈΡΠ»ΠΎΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ «unsafe» ΠΏΡΠΈΠ·Π½Π°Π½ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Microsoft crate-ΠΏΠ°ΠΊΠ΅Ρ windows, ΡΠ²Π»ΡΡΡΠΈΠΉΡΡ ΠΎΠ±Π²ΡΠ·ΠΊΠΎΠΉ Π½Π°Π΄ API ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Windows. ΠΠ°Π½Π½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ Π½Π°ΡΡΠΈΡΡΠ²Π°Π΅Ρ 36 ΠΌΠ»Π½. Π·Π°Π³ΡΡΠ·ΠΎΠΊ. Unsafe ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ°Ρ syn (470 ΠΌΠ»Π½ Π·Π°Π³ΡΡΠ·ΠΎΠΊ), proc-macro2 (354 ΠΌΠ»Π½ Π·Π°Π³ΡΡΠ·ΠΎΠΊ) ΠΈ libc (345 ΠΌΠ»Π½ Π·Π°Π³ΡΡΠ·ΠΎΠΊ).
ΠΠ»Ρ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² ΠΊΠΎΠ΄Π΅, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΌ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ «unsafe», ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Miri, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ Π²Π½Π΅ Π³ΡΠ°Π½ΠΈΡ Π±ΡΡΠ΅ΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎΡΠ»Π΅ Π΅Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ, Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
, Π½Π°ΡΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΡ Π±Π°Π·ΠΎΠ²ΡΡ
ΡΠΈΠΏΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ bool Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ 0 ΠΈΠ»ΠΈ 1), Π½Π°ΡΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ» Π²Π»Π°Π΄Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ Π³ΠΎΠ½ΠΊΠΈ ΠΈ ΡΡΠ΅ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru