Mozilla ááá±á¬áá»ááºá០áááºáá±á¬ááºáá¬ážáá±á¬ Rust 1.69 á¡ááœá±ááœá±-áááºááœááºáá»áẠáááá¯ááááºážáááºážáá¬áá¬á áá¬ážááᯠáá¯ááºáá±áá²á·áá±á¬áºáááºáž ááá¯á¡áá« ááœááºáááºáá±á¬ á¡áá»áá¯ážá¡ááŒááºááá°áá±á¬ á¡ááœá²á·á¡á ááºáž Rust Foundation á áá¶á·ááá¯ážáá°áá®ááŸá¯ááŒáá·áº áá¯ááºáá±ááá¯ááºáá«áááºá áá¬áá¬á áá¬ážááẠááŸááºáá¬ááºáá±ážáááºážáá±ážááᯠá¡á¬áá¯á¶á áá¯ááºááŒá®áž á¡ááŸáá¯ááºá á¯áá±á¬ááºážáá°ááŸáá·áº runtime ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááᯠááŸá±á¬ááºááŒááºáá±á ááºááœáẠááŒáá·áºáá¬ážáá±á¬á¡áá¯ááºá¡ááŒáá¯ááºáááŸáááẠáááºážáááºážáá»á¬ážááᯠáá¶á·ááá¯ážáá±ážááẠ(runtime ááᯠá¡ááŒá±áá¶á¡á áá»áá¯ážááŒááºážááŸáá·áº á á¶á á¬ááŒáá·áºááá¯ááºááᯠááŒá¯ááŒááºááááºážááááºážááŸá¯ááá¯á· áá»áŸá±á¬á·áá»áá¬ážáááº)á
Rust á áááºááá¯áá® ááá¯ááºááœááºááŸá¯áááºážáááºážáá»á¬ážááẠááœáŸááºááŸááºáá»á¬ážááᯠá¡áá¯á¶ážáá»ááá·áºá¡áá« áá±á¬á·ááºáá²áá±ážáá¬ážáá°ááᯠá¡ááŸá¬ážá¡ááœááºážáá»á¬ážá០áááºáááºááŒá®áž á¡ááá·áºáááá·áºááŸááºáá¬áẠááá¯ááºááœááºááŸá¯ááœáẠááŒá áºáá±á«áºáá¬ááá·áº ááŒá¿áá¬áá»á¬ážááᯠáá¬ááœááºáááºá áááºážááᯠááœááºááŒá®ážááá·áºáá±á¬áẠáááºááá¯áá®á§áááá¬ááá¯á· áááºáá±á¬ááºááŒááºážá null pointers áá»á¬ážááᯠááá¯ááºážáá¶á·áá¬ážááŒááºážá ááŒá¬ážáá¶áá»á¬áž áá»á±á¬áºááœááºááŒááºážáá»á¬ážá áááºááŒáá·áº ááŒá áºáá±á«áºáá¬áá±á¬ ááŒá¿áá¬áá»á¬ážááᯠáá¬ááœááºáá±ážáá«áááºá á á¬ááŒáá·áºááá¯ááºáá»á¬ážááᯠááŒáá·áºáá±áááºá áááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº ááŸá®ááá¯á¡á¬ážáá¬ážááŸá¯áá»á¬ážááᯠá á®áá¶áááºá ááá±á¬áá»ááºááẠCargo package manager ááᯠáá®ááœááºáááºá crates.io repository ááᯠhosting libraries áá»á¬ážá¡ááœáẠáá¶á·ááá¯ážáá¬ážáá«áááºá
ááá¯ážáá¬ážá á áºáá±ážááŒááºážá á¡áá¬ááá¹áá¯ááá¯ááºááá¯ááºááŸá¯ááá¯ááŒá±áá¬áá¶ááŒááºážá á¡áá¬ááá¹áá¯áááºáááºážááá¯ááŒá±áá¬áá¶ááŒááºáž (scopes) ááá¯ááŒá±áá¬áá¶ááŒááºážááŸáá·áº áá¯ááºáá¯ááºáá±á¬ááºáá±á ááºá¡ááœááºáž áááºááá¯áá®áááºáá±á¬ááºááŒááºážáááŸááºáááºááŸá¯ááᯠá¡áá²ááŒááºááŒááºážáá»á¬ážááŸáá áºááá·áº Memory safety ááᯠRust ááœáẠáá¶á·ááá¯ážáá±ážáá«áááºá Rust ááẠááááºážááŒáá·áºááŒáá·áºáá»áŸá¶ááŸá¯áá»á¬ážááᯠá¡áá¬á¡ááœááºáá±ážáááºá á¡áá¯á¶ážáááŒá¯áá® ááŒá±á¬ááºážáá²ááá¯ááºáá±á¬áááºááá¯ážáá»á¬ážááᯠáááŒá áºááá±á áááºáá¯ááºáá±á¬ááºááẠááá¯á¡ááºáááºá á á¶áá áºáá»á áºááá¯ááºááœáẠááá¯ááá¯áá±á¬ááºážááœááºáá±á¬ á¡ááŸá¬ážáá»á¬ážááᯠááá¯ááºááœááºáááºá áá¯á¶áá±á¡á¬ážááŒáá·áº áááŒá±á¬ááºážáá²ááá¯ááºáá±á¬ ááá¯ážáá¬ážáá»ááºáá»á¬ážááŸáá·áº ááááºážááŸááºáá»á¬ážá ááá±á¬ááá¬ážááᯠáá»áá·áºáá¯á¶ážáááºá áá¯áá¹ááá¡ááŸá¬ážáá»á¬ážááᯠá¡áááºážáá¯á¶ážááŒá áºá á±ááẠááá¯ááºáá¯á¶áá±á¬á¡ááŒáááºá á¬ááá¯ááºááŒááºážááᯠáá¶á·ááá¯ážáá±ážáá«áááºá
á¡ááá áá®ááœááºáááºážáá áºááŸá¯áá»á¬áž-
- áá¯ááºáááºáá¯ááºáá»áááºáá±á·áá»áºáááºáá±áá»á¬ááẠá¡ááá¯á¡áá»á±á¬ááºááŒá±ááŸááºážááá¯ááºááá·áºááááá±ážáá»ááºáá»á¬ážááá¯ááŸá¬ááœá±ááœá±á·ááŸáááŒááºážááŸáá·áº "áá¯ááºáááºáá¯ááºáá»ááŒááºáááºááŒááºáž" ááá¯á·ááá¯áẠ"áá¯ááºáááºáá¯ááºáá»ááá áºáá®-fix" áá¯ááºáá±á¬ááºááŒááºážá¡ááœáẠááá·áºáá»á±á¬áºáá±á¬á¡ááŒá¶ááŒá¯áá»ááºáá»á¬ážááᯠáá¯ááºáá±ážáááºá ááááá±ážáá»ááº- á¡áá¯á¶ážáááŒá¯áá±á¬ áááºááœááºážááŸá¯- 'std::hash::Hash' â> src/main.rs:1:5 | á | std::hash::Hash; | ^^^^^^^^^^^^^^^^| = ááŸááºáá»ááº- '#[warn(unused_imports)]' ááẠáá°áááºážááááá±ážáá»ááº- 'foo' (bin "foo") á០ááááá±ážáá»áẠ1 áᯠáá¯ááºááŒááºáá²á·ááẠ(á¡ááŒá¶ááŒá¯áá»áẠ1 áá¯ááᯠá¡áá¯á¶ážááŒá¯ááẠ'áá¯ááºáááºááŒááºáááºááŒááºáž âbin "foo"' ááᯠáá¯ááºáá±á¬ááºáá«)
- Cargo ááẠ"cargo install" command ááŒáá·áº library ááá¯ááá·áºááœááºážáááºááŒáá¯ážá á¬ážáá±á¬á¡áá« "cargo add" command ááá¯á¡áá¯á¶ážááŒá¯áááºá¡ááœáẠá¡ááŒá¶ááŒá¯áá»ááºá¡ááœááºááᯠááá·áºááœááºážáá¬ážáá«áááºá
- á á¯á ááºážááŸá¯á¡áá»áááºááᯠáá»áŸá±á¬á·áá»áááºá áááºáá±á¬ááºááŸá¯á ááá áºáá»á¬ážááœáẠá¡ááŸá¬ážááŸá¬ááŒááºážááá¯ááºáᬠá¡áá»ááºá¡áááºáá«áááºááŸá¯ááᯠáá°áááºážá¡á¬ážááŒáá·áº áááºááá·áºáá¬ážáááºá build scripts áá»á¬ážááᯠá¡á±á¬ááºááŒááºá áœá¬ áá¯ááºáá±á¬ááºáá«áá ááŒá±á¬ááºážáá²ááŸá¯ááẠááŒááºáá¬áá±á¬ ááœá²ááŒá¬ážááŸá¯áá»á¬áž ááŒá áºáá±á«áºáááºááá¯ááºáá±á¬áºáááºáž áá»ááºááœááºááŸá¯áá»á¬áž ááŒá áºáá±á«áºáá«áá ááŒá±áá¬áᶠá¡ááŸáá¯ááºáá¯á¶ááœáẠá¡áá»ááºá¡ááẠáááºážáá«ážááœá¬ážáá«áááºá á¡ááŒá¯á¡áá°áá±á¬ááºážááᯠCargo.toml ááá¯á· ááŒááºááœá¬ážááẠáááºááá·áºááá·áºáááº- [profile.dev.build-override] debug = true [profile.release.build-override] debug = true
- API á á¡á
áááºá¡ááá¯ááºážá¡áá
áºááᯠáááºááŒáááºáá±á¬á¡áá»áá¯ážá¡á
á¬ážááá¯á· ááœáŸá±á·áá¬ážááŒá®ážá áááºážáááºážáá»á¬ážááŸáá·áº á
ááá¯ááºááá¹ááá¬áá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá¬ááœáẠáááºááŒáááºá¡á±á¬ááºááŒá¯áá¯ááºáá¬ážáááº-
- CSstr::from_bytes_until_nul
- core::ffi::FromBytesUntilNulError
- ááááºážáá±áá»á¬ážá¡á
á¬áž áááºááá·áºá¡ááŒá±á¬ááºážá¡áá¬ááœááºáááᯠáááºážááá¯á¡áá¯á¶ážááŒá¯ááẠááŒá
áºááá¯ááºááŒá±ááᯠáá¯á¶ážááŒááºáá±ážááá·áº "const" attribute ááᯠáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááœáẠá¡áá¯á¶ážááŒá¯áááº-
- SocketAddr::á¡áá áº
- SocketAddr::ip
- SocketAddr::port
- SocketAddr::is_ipv4
- SocketAddr::is_ipv6
- SocketAddrV4::á¡áá áº
- SocketAddrV4::ip
- SocketAddrV4::port
- SocketAddrV6::á¡áá áº
- SocketAddrV6::ip
- SocketAddrV6::port
- SocketAddrV6::flowinfo
- SocketAddrV6::scope_id
- compiler arguments ááœáẠtrue ááŸáá·áº false flags áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áº á áœááºážáááºááᯠááá·áºááœááºážáá¬ážáááºá
source: opennet.ru