Miguel Ojeda, ืืืืจ ืคืจืืืงื Rust-for-Linux, ืืฆืืข ืฉืืจืืจ ืฉื ืจืืืื v6 ืืคืืชืื ืื ืืื ืืชืงื ืื ืืฉืคืช Rust ืืฉืงืื ืขื ืืื ืืคืชืื ืืืืช ืืื ืืงืก. ืืืื ืืืืืืจื ืืฉืืืขืืช ืฉื ืืชืืงืื ืื, ืืืชืืฉื ืืืจืกื ืืจืืฉืื ื, ืฉืคืืจืกืื ืืื ืืกืคืจ ืืจืกื. ืชืืืืช ืืืืื ื ืืฉืืช ื ืกืืื ืืช, ืื ืืื ืืืจ ืืืืื ืืขื ืฃ ื-linux-next ืืืคืืชืืช ืืกืคืืง ืืื ืืืชืืื ืืขืืืื ืขื ืืฆืืจืช ืฉืืืืช ืืคืฉืื ืขื ืืื ืชืช-ืืขืจืืืช ืืืื, ืืื ืื ืืชืืืช ืื ืืื ืืชืงื ืื ืืืืืืืื. ืืคืืชืื ืืืืื ืขื ืืื ืืืื ื-ISRG (Internet Security Research Group), ืืืืืกืืช ืืช ืคืจืืืงื Let's Encrypt ืืืงืืืช HTTPS ืืคืืชืื ืืื ืืืืืืืช ืืฉืืคืืจ ืืืืืช ืืืื ืืจื ื.
ืืืจืกื ืืืืฉื:
- ืขืจืืช ืืืืื ืืืจืกื ืฉื ืกืคืจืืืช alloc, ืืฉืืืจืจืช ืืืืืืฆืจืืช ืืคืฉืจืืช ืฉื ืืฆื "ืคืื ืืงื" ืืืฉืจ ืืชืจืืฉืืช ืฉืืืืืช, ืขืืืื ื ืืืจืกื ืฉื Rust 1.60, ืืฉืจ ืืืืฆืืช ืชืืืื ืืืฆื "maybe_uninit_extra" ืืืฉืืฉ ืืชืืงืื ื ืืืื.
- ื ืืกืคื ืืช ืืืืืืช ืืืจืืฅ ืืืืงืืช ืืืชืืขืื (ืืืืงืืช ืืืฉืืฉืืช ืื ืืืืืืืืช ืืชืืขืื), ืืจื ืืืจื ืืืื ืืืืืจ ืฉื ืืืืงืืช ืืงืฉืืจืืช ื- API ืฉื ืืืืื ืืืืืงืืช KUnit ืฉืืืฆืขื ืืืืื ืืขืื ืช ืืืืื.
- ืืืืฆื ืืจืืฉืืช ืืคืืื ืืืืงืืช ืื ืฆืจืืืืช ืืืจืื ืืืืืจืช Clippy linter, ืืืืืง ืืื ืงืื ืืืืช Rust.
- ืืืฆืข ืืืฉืื ืจืืฉืื ื ืฉื ืืืืื "ื ืื" ืขื ืคืื ืงืฆืืืช ืจืฉืช. ืืงืื Rust ืืฉ ืืืฉื ืืืื ื ืจืฉืช ืืืื ืืืื Namespace (ืืืืกืก ืขื ืืื ื ืืืืช ื-struct net), SkBuff (struct sk_buff), TcpListener, TcpStream (socket struct), Ipv4Addr (struct in_addr), SocketAddrV4 (struct sockaddr_in) ืืืงืืืืืชืืื ื-IPv6 .
- ืงืืืืช ืชืืืื ืจืืฉืื ืืช ืืืื ืืงืืช ืชืื ืืช ืืกืื ืืจืื ื (ืืกืื ืืจืื ื), ืืืืืฉืืช ืืฆืืจื ืฉื ืืืืื kasync. ืืืืืื, ืืชื ืืืื ืืืชืื ืงืื ืืกืื ืืจืื ื ืืื ืืชืคืขื ืฉืงืขื TCP: async fn echo_server(stream: TcpStream) -> ืชืืฆืื { let mut buf = [0u8; 1024]; loop { let n = stream.read(&mut buf).await?; if n == 0 { return Ok(()); } stream.write_all(&buf[..n]).await?; } }
- ื ืืกืฃ ืืืืื net::filter ืืชืคืขืื ืืกื ื ื ืื ืืช ืืจืฉืช. ื ืืกืคื ืืืืื rust_netfilter.rs ืขื ืืืืืฉ ืคืืืืจ ืืฉืคืช Rust.
- ื ืืกืฃ ืืืฉืื ืฉื mutex smutex::Mutex ืคืฉืื, ืฉืืื ื ืืืจืฉ ืืฆืืื.
- ื ืืกืฃ NoWaitLock, ืฉืืขืืื ืื ืืืชืื ืื ืขืืื, ืืื ืืื ืชืคืืก ืขื ืืื ืฉืจืฉืืจ ืืืจ, ืืืจื ืืืืืื ืขื ืฉืืืื ืืขืช ื ืืกืืื ืืจืืืฉ ืืช ืื ืขืืื ืืืงืื ืืขืฆืืจ ืืช ืืืชืงืฉืจ.
- ื ืืกืฃ RawSpinLock, ืืืืืื ืขื ืืื raw_spinlock_t ืืงืจื ื, ืืื ืืืืื ืขื ืงืืขืื ืฉืืื ื ืืืืืื ืืืืืช ืคืขืืืื.
- ื ืืกืฃ ืกืื ARef ืขืืืจ ืืคื ืืืช ืืืืืืืงื ืฉืขืืื ืืืื ืื ืื ืื ืกืคืืจืช ืืคื ืืืช (ืชืืื ื ืกืคืืจ ืืืืฉ).
- ื-backend rustc_codegen_gcc, ืืืืคืฉืจ ืื ืืืฉืชืืฉ ืืกืคืจืืืช libgccjit ืืคืจืืืงื GCC ืืืืืื ืงืื ื-rustc ืืื ืืกืคืง ื-rustc ืชืืืื ืืืจืืืืงืืืจืืช ืืืืคืืืืืืฆืืืช ืืืืื ืืช ื-GCC, ืืืืืข ืืช ืืืืืืช ืืืชืื ืืช ืืืืจ rustc. ืงืืืื ืืืืจ ืคืืจืืฉื ืืืืืืช ืืืฉืชืืฉ ืืืืืื ืงืื ืืืืกืก GCC ื-rustc ืืื ืืื ืืช ืืช ืืืืจ rustc ืขืฆืื. ืื ืืกืฃ, ืืืืืืจื ืืืืจืื ื ืฉื GCC 12.1 ืืืืืช ืชืืงืื ืื ื-libgccjit ืื ืืืฆืื ืืื ืฉ-rustc_codegen_gcc ืืคืขื ืืืืื. ืืชืืฆืขืืช ืืื ืืช ืืื ืืกืคืง ืืช ืืืืืืช ืืืชืงืื rustc_codegen_gcc ืืืืฆืขืืช ืืื ืืฉืืจืืช Rustup.
- ืืฆืืื ืช ืืืชืงืืืืช ืืคืืชืื ื-gccrs Frontend GCC ืขื ืืืฉืื ืืืืจ ืฉืคืช Rust ืืืืืกืก ืขื GCC. ืืฉ ืืจืืข ืฉื ื ืืคืชืืื ืืืฉืจื ืืืื ืฉืขืืืืื ืขื gccrs.
ื ืืืืจ ืื ืืฉืื ืืืื ืืืืฆืขืื ืืืคืฉืจืื ืืืฉืชืืฉ ื- Rust ืืฉืคื ืฉื ืืื ืืคืืชืื ืื ืืื ืืชืงื ืื ืืืืืืื ืืืื. ืชืืืืช Rust ืืืฆืืช ืืืคืฉืจืืช ืฉืืื ื ืืืคืขืืช ืืืจืืจืช ืืืื ืืืื ื ืืืจืืช ืืื ืฉ- Rust ื ืืื ืืชืืืช ืื ืืื ื ืืจืฉืช ืขืืืจ ืืืืื. ืฉืืืืฉ ื-Rust ืืคืืชืื ืื ืืื ืืชืงื ืื ืืืคืฉืจ ืื ืืืฆืืจ ืืจืืืืจืื ืืืืืื ืืืืืื ืืืชืจ ืืืื ืืืื ืืืืฅ, ืืื ืืขืืืช ืืืื ืืืฉื ืืืืืจืื ืืืืจ ืฉืืจืืจ, ืืคื ืืืช ืืฆืืืขืืช ืืคืกืืืช ืืืจืืืืช ืืืืจ.
ืืืืืืช ืืืืจืื ืืกืืคืงืช ื-Rust ืืืื ืืงืืืคืืืฆืื ืืืืฆืขืืช ืืืืงืช ืืชืืืืกืืช, ืืขืงื ืืืจ ืืขืืืช ืขื ืืืืืืงื ืืืฉื ืืื ืืืืืืงื (ืืืงืฃ), ืืื ืืืืฆืขืืช ืืขืจืื ืฉื ื ืืื ืืช ืืืืฉื ืืืืืจืื ืืืืื ืืืฆืืข ืงืื. Rust ืืกืคืงืช ืื ืืื ื ืืคื ื ืืฆืคืช ืืกืคืจืื ืฉืืืื, ืืืจืฉืช ืืชืืื ืืืื ืฉื ืขืจืื ืืฉืชื ืื ืืคื ื ืืฉืืืืฉ, ืืืคืืช ืืฉืืืืืช ืืื ืืืชืจ ืืกืคืจืืื ืืกืื ืืจืืืช, ืืืืฉืืช ืืช ืืจืขืืื ืฉื ืืคื ืืืช ืืืฉืชื ืื ืืืชื ื ืืชื ืื ืืฉืื ืื ืืืจืืจืช ืืืื, ืืฆืืขื ืืงืืื ืกืืืืช ืืืงื ืืื ืืืืขืจ ืฉืืืืืช ืืืืืืช.
ืืงืืจ: OpenNet.ru