เบเบฒเบเบเปเบญเบเบเบฒเบชเบฒเบเบฒเบเบเบฝเบเปเบเบฅเปเบเบฅเบกเบฅเบฐเบเบปเบ Rust 1.53, เบชเปเบฒเบเบเบฑเปเบเบเบถเปเบเปเบเบเปเบเบเบเบฒเบ Mozilla, เปเบเปเปเบเบเบฑเบเบเบธเบเบฑเบเปเบเปเบเบทเบเบเบฑเบเบเบฐเบเบฒเบเบฒเบเปเบเปเบเบฒเบเบญเบธเบเบฐเบเปเบฒเบเบญเบเบญเบปเบเบเบฒเบเปเบญเบเบฐเบฅเบฒเบเบเบตเปเบเปเปเบซเบงเบฑเบเบเบปเบเบเปเบฒเปเบฅ Rust Foundation, เปเบเปเบเบทเบเบเบฑเบเบเบตเบกเบกเบฒ. เบเบฒเบชเบฒเบชเบธเบกเปเบชเปเบเบงเบฒเบกเบเบญเบเปเบเบเบญเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒ, เบชเบฐเบซเบเบญเบเบเบฒเบเบเบธเปเบกเบเบญเบเบเบงเบฒเบกเบเบปเบเบเปเบฒเบญเบฑเบเบเบฐเปเบเบกเบฑเบ, เปเบฅเบฐเบชเบฐเบซเบเบญเบเบงเบดเบเบตเบเบฒเบเปเบเบทเปเบญเบเบฑเบเบฅเบธเบงเบฝเบเบเบฒเบเบเบฐเบซเบเบฒเบเบชเบนเบเปเบเบเบเปเปเบกเบตเบเบฒเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเปเบเบฑเบเบเบตเปเปเบซเบเบทเปเบญเบซเบผเบท runtime (runtime เบซเบผเบธเบเบฅเบปเบเปเบเบฑเบเบเบทเปเบเบเบฒเบเปเบเบทเปเบญเบเบเบปเปเบเปเบฅเบฐเบเบฒเบเบเปเบฒเบฅเบธเบเบฎเบฑเบเบชเบฒเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบกเบฒเบเบเบฐเบเบฒเบ).
เบเบฒเบเบเบฑเบเบเบฒเบเบเบงเบฒเบกเบเบปเบเบเปเบฒเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเบญเบ Rust เบเปเบฒเบเบฑเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเปเบเปเบงเบฅเบฒเบเบตเป manipulating pointers เปเบฅเบฐเบเปเบญเบเบเบฑเบเบเบฑเบเบซเบฒเบเบตเปเปเบเบตเบเบเบฒเบเบเบฒเบเบซเบกเบนเบเปเบเปเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบฅเบฐเบเบฑเบเบเปเปเบฒ, เปเบเบฑเปเบ: เบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบฒเบเบเบทเปเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบซเบผเบฑเบเบเบฒเบเบเบตเปเบกเบฑเบเปเบเปเบเบทเบเบเบปเบเบเปเบญเบ, null pointer dereferences, buffer overruns, เปเบฅเบฐเบญเบทเปเบเป. เปเบเบทเปเบญเปเบเบเบขเบฒเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบ, เบฎเบฑเบเบเบฐเบเบฑเบเบเบฒเบเบเบฐเบเบญเบเปเบฅเบฐเบเบฒเบเบเบธเปเบกเบเบญเบเบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบช, เปเบเบเบเบฒเบเบเปเบฒเบฅเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบนเปเบเบฑเบเบเบฒเบเบเบธเบเบชเบดเบเบเปเบฒ. เบเบฑเบเปเบเบฑเบ crates.io เปเบเปเบฎเบฑเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบฑเบเปเบเบปเปเบฒเบเบฒเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบ.
เบเบฐเบงเบฑเบเบเบฐเบเปเบฒเบเบปเปเบเบเป:
- ะะปั ะผะฐััะธะฒะพะฒ ัะตะฐะปะธะทะพะฒะฐะฝ ัะธะฟะฐะถ IntoIterator, ะฟะพะทะฒะพะปัััะธะน ะพัะณะฐะฝะธะทะพะฒะฐัั ะฟะตัะตะฑะพั ัะปะตะผะตะฝัะพะฒ ะผะฐััะธะฒะฐ ะฟะพ ะทะฝะฐัะตะฝะธัะผ: for i in [1, 2, 3] { .. }
ะขะฐะบะถะต ะฟะพัะฒะธะปะฐัั ะฒะพะทะผะพะถะฝะพััั ะฟะตัะตะดะฐัะธ ะผะฐััะธะฒะพะฒ ะฒ ะผะตัะพะดั, ะฟัะธะฝะธะผะฐััะธะต ะธัะตัะฐัะพัั, ะฝะฐะฟัะธะผะตั: let set = BTreeSet::from_iter([1, 2, 3]); for (a, b) in some_iterator.chain([1]).zip([1, 2, 3]) { .. }
ะ ะฐะฝะตะต IntoIterator ะฑัะป ัะตะฐะปะธะทะพะฒะฐะฝ ัะพะปัะบะพ ะดะปั ัััะปะพะบ ะฝะฐ ะผะฐััะธะฒั, ั.ะต. ะดะปั ะฟะตัะตะฑะพัะฐ ะฟะพ ะทะฝะฐัะตะฝะธัะผ ััะตะฑะพะฒะฐะปะพัั ะธัะฟะพะปัะทะพะฒะฐะฝะธะต ัััะปะพะบ (ยซ&[1, 2, 3]ยป) ะธะปะธ ยซ[1, 2, 3].iter()ยป. ะ ะตะฐะปะธะทะฐัะธะธ IntoIterator ะดะปั ะผะฐััะธะฒะพะฒ ะผะตัะฐะปะธ ะฟัะพะฑะปะตะผั ั ัะพะฒะผะตััะธะผะพัััั, ะฒัะทะฒะฐะฝะฝัะต ัะฐะฝะตะต ะดะพะฑะฐะฒะปะตะฝะฝัะผ ะฒ ะบะพะผะฟะธะปััะพั ะฟัะตะพะฑัะฐะทะพะฒะฐะฝะธะตะผ ะผะตัะพะดะฐ array.into_iter() ะฒ (&array).into_iter(). ะฃะบะฐะทะฐะฝะฝัะต ะฟัะพะฑะปะตะผั ัะดะฐะปะพัั ัะตัะธัั ะพะฑั ะพะดะฝัะผ ะฟัััะผ โ ะบะพะผะฟะธะปััะพั ะฟัะพะดะพะปะถะธั ะฟัะตะพะฑัะฐะทะพะฒะฐะฝะธะต array.into_iter() ะฒ (&array).into_iter(), ะบะฐะบ ะตัะปะธ ะฑั ะพััััััะฒะพะฒะฐะปะฐ ัะตะฐะปะธะทะฐัะธั ัะธะฟะฐะถะฐ IntoIterator, ะฝะพ ัะพะปัะบะพ ะฟัะธ ะฒัะทะพะฒะต ะผะตัะพะดะฐ ั ะธัะฟะพะปัะทะพะฒะฐะฝะธะตะผ ัะธะฝัะฐะบัะธัะฐ ยซ.into_iter()ยป ะธ ะฝะต ะบะฐัะฐััั ะฒัะทะพะฒะพะฒ ะฒ ัะพัะผะต ยซin [1, 2, 3]ยป, ยซiter.zip([1, 2, 3])ยป, ยซIntoIterator::into_iter([1, 2, 3])ยป.
- ะัะตะดะพััะฐะฒะปะตะฝะฐ ะฒะพะทะผะพะถะฝะพััั ัะบะฐะทะฐะฝะธั ะฒััะฐะถะตะฝะธะน ยซ|ยป (ะปะพะณะธัะตัะบะฐั ะพะฟะตัะฐัะธั OR) ะฒ ะปัะฑะพะน ัะฐััะธ ัะฐะฑะปะพะฝะฐ, ะฝะฐะฟัะธะผะตั, ะฒะผะตััะพ ยซSome(1) | Some(2)ยป ัะตะฟะตัั ะผะพะถะฝะพ ะฟะธัะฐัั ยซSome(1 | 2)ยป: match result { Ok(Some(1 | 2)) => { .. } Err(MyError { kind: FileNotFound | PermissionDenied, .. }) => { .. } _ => { .. } }
- ะ ะฐะทัะตัะตะฝะพ ะธัะฟะพะปัะทะพะฒะฐะฝะธะต ะฝะต-ASCII ัะธะผะฒะพะปะพะฒ ะฒ ะธะดะตะฝัะธัะธะบะฐัะพัะฐั , ะฒ ัะพะผ ัะธัะปะต ะปัะฑัั ะฝะฐัะธะพะฝะฐะปัะฝัั ัะธะผะฒะพะปะพะฒ, ะพะฟัะตะดะตะปัะฝะฝัั ะฒ ัะฟะตัะธัะธะบะฐัะธะธ Unicode UAX 31, ะฝะพ ะบัะพะผะต ัะธะผะฒะพะปะพะฒ emoji. ะัะธ ะธัะฟะพะปัะทะพะฒะฐะฝะธะธ ัะฐะทะฝัั , ะฝะพ ะฟะพั ะพะถะธั ะฟะพ ะฝะฐัะตััะฐะฝะธั ัะธะผะฒะพะปะพะฒ, ะบะพะผะฟะธะปััะพั ะฒัะฒะตะดะตั ะฟัะตะดัะฟัะตะถะดะตะฝะธะต. const BLร HAJ: &str = ยซ๐ฆยป; struct ไบบ { ๅๅญ: String, } let ฮฑ = 1; let ๏ฝos = 2; warning: identifier pair considered confusable between โ๏ฝโ and โsโ
- เบชเปเบงเบเปเบซเบกเปเบเบญเบ APIs เปเบเปเบเบทเบเปเบญเบเปเบเบซเบฒเบเบฐเปเบเบเบเบงเบฒเบกเบซเบกเบฑเปเบเบเบปเบ, เบฅเบงเบกเบเบฑเบเบเบงเบฒเบกเบซเบกเบฑเปเบเบเบปเบเบเบฑเปเบเบเปเปเปเบเบเบตเป:
- array::from_ref
- array::from_mut
- AtomicBool::fetch_update
- AtomicPtr::fetch_update
- BTreeSet::retain
- BTreeMap::retain
- BufReader::seek_relative
- cmp::min_by
- cmp::min_by_key
- cmp::max_by
- cmp::max_by_key
- DebugStruct::finish_non_exhaustive
- Duration::ZERO
- Duration::MAX
- Duration::is_zero
- เปเบฅเบเบฐเปเบงเบฅเบฒ::saturating_add
- เปเบฅเบเบฐเปเบงเบฅเบฒ::saturating_sub
- เปเบฅเบเบฐเปเบงเบฅเบฒ::saturating_mul
- f32::is_subnormal
- f64::is_subnormal
- IntoIterator ะดะปั ะผะฐััะธะฒะพะฒ
- {integer}::BITS
- io::Error::Unsupported
- NonZero*::leading_zeros
- NonZero*::trailing_zeros
- Option::insert
- Ordering::is_eq
- Ordering::is_ne
- Ordering::is_lt
- Ordering::is_gt
- Ordering::is_le
- Ordering::is_ge
- OsStr::make_ascii_lowercase
- OsStr::make_ascii_uppercase
- OsStr::to_ascii_lowercase
- OsStr::to_ascii_uppercase
- OsStr::is_ascii
- OsStr::eq_ignore_ascii_case
- Peekable::peek_mut
- Rc::increment_strong_count
- Rc::decrement_strong_count
- slice::IterMut::as_slice
- AsRef<[T]> ะดะปั slice::IterMut
- impl SliceIndex ะดะปั (Bound<usize>, Bound<usize>)
- Vec::extend_from_within
- ะ ะตะฐะปะธะทะพะฒะฐะฝ ััะตัะธะน ััะพะฒะตะฝั ะฟะพะดะดะตัะถะบะธ ะดะปั ะฟะปะฐััะพัะผั wasm64-unknown-unknown. ะขัะตัะธะน ััะพะฒะตะฝั ะฟะพะดัะฐะทัะผะตะฒะฐะตั ะฑะฐะทะพะฒัั ะฟะพะดะดะตัะถะบั, ะฝะพ ะฑะตะท ะฐะฒัะพะผะฐัะธะทะธัะพะฒะฐะฝะฝะพะณะพ ัะตััะธัะพะฒะฐะฝะธั, ะฟัะฑะปะธะบะฐัะธะธ ะพัะธัะธะฐะปัะฝัั ัะฑะพัะพะบ ะธ ะฟัะพะฒะตัะบะธ ะฒะพะทะผะพะถะฝะพััะธ ัะฑะพัะบะธ ะบะพะดะฐ.
- ะะฐะบะตัะฝัะน ะผะตะฝะตะดะถะตั Cargo ะฟะพ ัะผะพะปัะฐะฝะธั ะฟะตัะตะฒะตะดัะฝ ะฝะฐ ะธัะฟะพะปัะทะพะฒะฐะฝะธะต ะธะผะตะฝะธ ยซmainยป ะดะปั ะพัะฝะพะฒะฝะพะน ะฒะตัะบะธ Git-ัะตะฟะพะทะธัะพัะธั (HEAD). ะะปั ะทะฐะฒะธัะธะผะพััะตะน, ัะฐะทะผะตััะฝะฝัั ะฒ ัะตะฟะพะทะธัะพัะธัั , ะธัะฟะพะปัะทัััะธั ะธะผั main ะฒะผะตััะพ master, ะฑะพะปััะต ะฝะต ััะตะฑัะตััั ัะบะฐะทัะฒะฐัั ะฒ ะฝะฐัััะพะนะบะฐั branch = ยซmainยป.
- เปเบ compiler, เบเปเปเบเปเบฒเบเบปเบเบชเปเบฒเบฅเบฑเบเบชเบฐเบเบฑเบเบเปเบฒเปเบชเบธเบเบเบตเปเบเบญเบ LLVM เปเบเปเบเบทเบเบเบปเบเบเบถเปเบเบกเบฒเปเบเบฑเบ LLVM 10.
ะะพะฟะพะปะฝะธัะตะปัะฝะพ ะผะพะถะฝะพ ะพัะผะตัะธัั ะฟัะตะดะพััะฐะฒะปะตะฝะธะต ัะธะฝะฐะฝัะธัะพะฒะฐะฝะธั ัะฐะฑะพัั ะฟะพ ัะฐะทะฒะธัะธั ะธะฝัะตะณัะฐัะธะธ ะฒ ัะดัะพ Linux ััะตะดััะฒ ะดะปั ัะฐะทัะฐะฑะพัะบะธ ะบะพะผะฟะพะฝะตะฝัะพะฒ ะฝะฐ ัะทัะบะต Rust. ะ ะฐะฑะพัะฐ ะฑัะดะตั ะฒะตััะธัั ะฒ ัะฐะผะบะฐั ะฟัะพะตะบัะฐ Prossimo ะฟะพะด ัะณะธะดะพะน ะพัะณะฐะฝะธะทะฐัะธะธ ISRG (Internet Security Research Group), ะบะพัะพัะฐั ัะฒะปัะตััั ัััะตะดะธัะตะปะตะผ ะฟัะพะตะบัะฐ Letโs Encrypt ะธ ัะฟะพัะพะฑััะฒัะตั ะฟัะพะดะฒะธะถะตะฝะธั HTTPS ะธ ัะฐะทะฒะธัะธั ัะตั ะฝะพะปะพะณะธะน ะดะปั ะฟะพะฒััะตะฝะธั ะทะฐัะธััะฝะฝะพััะธ ะธะฝัะตัะฝะตัะฐ. ะกัะตะดััะฒะฐ ะฑัะดัั ะฟัะตะดะพััะฐะฒะปะตะฝั ะบะพะผะฟะฐะฝะธะตะน Google, ะบะพัะพัะฐั ะพะฟะปะฐัะธั ัะฐะฑะพัั ะะธะณะตะปั ะั ะตะดะฐ (Miguel Ojeda), ะฐะฒัะพัะฐ ะฟัะพะตะบัะฐ Rust-for-Linux. ะ ะฐะฝะตะต ISRG ะธ Google ัะถะต ะฟัะพัะธะฝะฐะฝัะธัะพะฒะฐะปะธ ัะพะทะดะฐะฝะธะต ะฐะปััะตัะฝะฐัะธะฒะฝะพะณะพ HTTP-ะฑัะบะตะฝะดะฐ ะดะปั ััะธะปะธัั curl ะธ ัะฐะทัะฐะฑะพัะบั ะฝะพะฒะพะณะพ TLS-ะผะพะดัะปั ะดะปั http-ัะตัะฒะตัะฐ Apache.
ะะพ ะดะฐะฝะฝัะผ ะบะพะผะฟะฐะฝะธะน Microsoft ะธ Google ะพะบะพะปะพ 70% ััะทะฒะธะผะพััะตะน ะฒัะทะฒะฐะฝั ะฝะตะฑะตะทะพะฟะฐัะฝะพะน ัะฐะฑะพัะพะน ั ะฟะฐะผัััั. ะัะตะดะฟะพะปะฐะณะฐะตััั, ััะพ ะธัะฟะพะปัะทะพะฒะฐะฝะธะต ัะทัะบะฐ Rust ะดะปั ัะฐะทัะฐะฑะพัะบะธ ะบะพะผะฟะพะฝะตะฝัะพะฒ ัะดัะฐ, ัะฐะบะธั ะบะฐะบ ะดัะฐะนะฒะตัั ััััะพะนััะฒ, ะฟะพะทะฒะพะปะธั ัะฝะธะทะธัั ัะธัะบ ะฟะพัะฒะปะตะฝะธั ััะทะฒะธะผะพััะตะน, ะฒัะทะฒะฐะฝะฝัั ะฝะตะฑะตะทะพะฟะฐัะฝะพะน ัะฐะฑะพัะพะน ั ะฟะฐะผัััั, ะธ ะธัะบะปััะธัั ะฟะพัะฒะปะตะฝะธะต ัะฐะบะธั ะพัะธะฑะพะบ, ะบะฐะบ ะพะฑัะฐัะตะฝะธะตะผ ะบ ะพะฑะปะฐััะธ ะฟะฐะผััะธ ะฟะพัะปะต ะตั ะพัะฒะพะฑะพะถะดะตะฝะธั ะธ ะฒัั ะพะด ะทะฐ ะณัะฐะฝะธัั ะฑััะตัะฐ.
Rust เบเบฑเบเบเบฑเบเปเบเปเบเบงเบฒเบกเบเบญเบเปเบเบเบญเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเปเบเปเบงเบฅเบฒเบฅเบงเบเบฅเบงเบกเปเบเบเบเปเบฒเบเบเบฒเบเบเบงเบเบชเบญเบเบเบฒเบเบญเปเบฒเบเบญเบดเบ, เบเบฒเบเปเบเบฑเบเปเบเบปเปเบฒเบเบญเบเบงเบฑเบเบเบธเปเบฅเบฐเบเบฒเบเบเบดเบเบเบฒเบกเบเบฐเบซเบผเบญเบเบเบตเบงเบดเบเบเบญเบเบงเบฑเบเบเบธ (เบเบญเบเปเบเบ), เปเบฅเบฐเปเบเบเบเบฒเบเบเบฐเปเบกเบตเบเบเบงเบฒเบกเบเบทเบเบเปเบญเบเบเบญเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเปเบเปเบงเบฅเบฒเปเบฅเปเบ. Rust เบเบฑเบเบชเบฐเบซเบเบญเบเบเบฒเบเบเปเบญเบเบเบฑเบเบเบฒเบ overflows integer, เบฎเบฝเบเบฎเปเบญเบเปเบซเปเบเปเบฒเบเบปเบงเปเบเปเบเปเบเบทเบเปเบฅเบตเปเบกเบเบปเปเบเบเปเบญเบเบเบตเปเบเบฐเบเปเบฒเปเบเป, เบกเบตเบเบฒเบเบเบฑเบเบเบฒเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเบเบตเปเบเบตเบเบงเปเบฒเปเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบกเบฒเบเบเบฐเบเบฒเบ, เปเบเปเปเบเบงเบเบงเบฒเบกเบเบดเบเบเบญเบเบเบฒเบเบญเปเบฒเบเบญเบตเบเบเบตเปเบเปเปเบเปเบฝเบเปเบเบเปเบฅเบฐเบเบปเบงเปเบเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, เปเบฅเบฐเบชเบฐเบซเบเบญเบเบเบฒเบเบเบดเบกเบเบปเบเบเบตเปเบเบตเปเปเบเบฑเปเบกเปเบเบเปเบเบทเปเบญเบซเบผเบธเบเบเปเบญเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเบขเปเบฒเบเบกเบตเปเบซเบเบเบปเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: opennet.ru