Rust 1.65 เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพ เจฐเฉ€เจฒเฉ€เจœเจผ

เจฐเจธเจŸ 1.65 เจ†เจฎ-เจ‰เจฆเฉ‡เจธเจผ เจตเจพเจฒเฉ€ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพ เจฆเฉ€ เจฐเจฟเจฒเฉ€เจœเจผ, เจœเฉ‹ เจ•เจฟ เจฎเฉ‹เจœเจผเฉ€เจฒเจพ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเฉเจ†เจฐเจพ เจธเจฅเจพเจชเจฟเจค เจ•เฉ€เจคเฉ€ เจ—เจˆ เจธเฉ€, เจชเจฐ เจนเฉเจฃ เจธเฉเจคเฉฐเจคเจฐ เจ—เฉˆเจฐ-เจฎเฉเจจเจพเจซเจผเจพ เจธเฉฐเจธเจฅเจพ เจฐเจธเจŸ เจซเจพเจŠเจ‚เจกเฉ‡เจธเจผเจจ เจฆเฉ€ เจธเจฐเจชเฉเจฐเจธเจคเฉ€ เจนเฉ‡เจ  เจตเจฟเจ•เจธเจค เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆ, เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆเฅค เจญเจพเจธเจผเจพ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจธเฉเจฐเฉฑเจ–เจฟเจ† 'เจคเฉ‡ เจ•เฉ‡เจ‚เจฆเฉเจฐเจค เจ•เจฐเจฆเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจ•เฉ‚เฉœเจพ เจ‡เจ•เฉฑเจ เจพ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจ…เจคเฉ‡ เจฐเจจเจŸเจพเจˆเจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจคเฉ‹เจ‚ เจชเจฐเจนเฉ‡เจœเจผ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจ‰เฉฑเจš เจจเฉŒเจ•เจฐเฉ€ เจฆเฉ€ เจธเจฎเจพเจจเจคเจพ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ‡ เจธเจพเจงเจจ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเฉ€ เจนเฉˆ (เจฐเจจเจŸเจพเจˆเจฎ เจจเฉ‚เฉฐ เจฎเจฟเจ†เจฐเฉ€ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฆเฉ€ เจฎเฉเฉฑเจขเจฒเฉ€ เจธเจผเฉเจฐเฉ‚เจ†เจค เจ…เจคเฉ‡ เจฐเฉฑเจ–-เจฐเจ–เจพเจ… เจคเฉฑเจ• เจ˜เจŸเจพ เจฆเจฟเฉฑเจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ)เฅค

เจœเฉฐเจ—เจพเจฒ เจฆเฉ€เจ†เจ‚ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจนเฉˆเจ‚เจกเจฒเจฟเฉฐเจ— เจตเจฟเจงเฉ€เจ†เจ‚ เจชเฉเจ†เจ‡เฉฐเจŸเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉ‡เจฐเจพเจซเฉ‡เจฐเฉ€ เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจจเฉ‚เฉฐ เจคเจฐเฉเฉฑเจŸเฉ€เจ†เจ‚ เจคเฉ‹เจ‚ เจฌเจšเจพเจ‰เจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ เจ…เจคเฉ‡ เจ˜เฉฑเจŸ-เจชเฉฑเจงเจฐเฉ€ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจนเฉˆเจ‚เจกเจฒเจฟเฉฐเจ— เจฆเฉ‡ เจ•เจพเจฐเจจ เจชเฉˆเจฆเจพ เจนเฉ‹เจฃ เจตเจพเจฒเฉ€เจ†เจ‚ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจคเฉ‹เจ‚ เจฌเจšเจพเจ‰เจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจ–เฉ‡เจคเจฐ เจจเฉ‚เฉฐ เจ–เจพเจฒเฉ€ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ‡เจธ เจจเฉ‚เฉฐ เจเจ•เจธเฉˆเจธ เจ•เจฐเจจเจพ, เจจเจฒ เจชเฉเจ†เจ‡เฉฐเจŸเจฐเจพเจ‚ เจฆเจพ เจนเจตเจพเจฒเจพ เจฆเฉ‡เจฃเจพ, เจฌเจซเจฐ เจ“เจตเจฐเจฐเจจ, เจ†เจฆเจฟเฅค เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจตเฉฐเจกเจฃ, เจฌเจฟเจฒเจก เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจจ เจ…เจคเฉ‡ เจจเจฟเจฐเจญเจฐเจคเจพ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจ•เจฐเจจ เจฒเจˆ, เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจ•เจพเจฐเจ—เฉ‹ เจชเฉˆเจ•เฉ‡เจœ เจฎเฉˆเจจเฉ‡เจœเจฐ เจจเฉ‚เฉฐ เจตเจฟเจ•เจธเจค เจ•เจฐเจฆเจพ เจนเฉˆเฅค crates.io เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจนเฉ‹เจธเจŸเจฟเฉฐเจ— เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจฒเจˆ เจธเจฎเจฐเจฅเจฟเจค เจนเฉˆเฅค

เจฐเฉˆเจซเจฐเฉˆเจ‚เจธ เจšเฉˆเจ•เจฟเฉฐเจ—, เจ†เจฌเจœเฉˆเจ•เจŸ เจฆเฉ€ เจฎเจฒเจ•เฉ€เจ…เจค เจฆเจพ เจŸเฉเจฐเฉˆเจ• เจฐเฉฑเจ–เจฃ, เจ†เจฌเจœเฉˆเจ•เจŸ เจฒเจพเจˆเจซเจŸเจพเจˆเจฎ (เจธเจ•เฉ‹เจชเจพเจ‚) เจฆเจพ เจŸเฉเจฐเฉˆเจ• เจฐเฉฑเจ–เจฃ เจ…เจคเฉ‡ เจ•เฉ‹เจก เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจฆเฉŒเจฐเจพเจจ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจเจ•เจธเฉˆเจธ เจฆเฉ€ เจธเจผเฉเฉฑเจงเจคเจพ เจฆเจพ เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจ•เจฐเจจ เจฆเฉเจ†เจฐเจพ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจธเฉเจฐเฉฑเจ–เจฟเจ† เจฐเจธเจŸ เจตเจฟเฉฑเจš เจ•เฉฐเจชเจพเจˆเจฒ เจธเจฎเฉ‡เจ‚ เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจœเฉฐเจ—เจพเจฒ เจชเฉ‚เจฐเจจ เจ…เฉฐเจ• เจ“เจตเจฐเจซเจฒเฉ‹ เจฆเฉ‡ เจตเจฟเจฐเฉเฉฑเจง เจธเฉเจฐเฉฑเจ–เจฟเจ† เจตเฉ€ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆ, เจตเจฐเจคเฉ‹เจ‚ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจฎเฉเฉฑเจฒเจพเจ‚ เจฆเฉ€ เจฒเจพเจœเจผเจฎเฉ€ เจธเจผเฉเจฐเฉ‚เจ†เจค เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจฎเจฟเจ†เจฐเฉ€ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจตเจฟเฉฑเจš เจ—เจฒเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจฌเจฟเจนเจคเจฐ เจขเฉฐเจ— เจจเจพเจฒ เจธเฉฐเจญเจพเจฒเจฆเจพ เจนเฉˆ, เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ…เจŸเฉฑเจฒ เจธเฉฐเจฆเจฐเจญเจพเจ‚ เจ…เจคเฉ‡ เจตเฉ‡เจฐเฉ€เจเจฌเจฒเจพเจ‚ เจฆเฉ€ เจงเจพเจฐเจจเจพ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจฆเจพ เจนเฉˆ, เจฒเจพเจœเจผเฉ€เจ•เจฒ เจ—เจฒเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจ˜เฉฑเจŸ เจ•เจฐเจจ เจฒเจˆ เจฎเจœเจผเจฌเฉ‚เจค โ€‹โ€‹เจธเจฅเจฟเจฐ เจŸเจพเจˆเจชเจฟเฉฐเจ— เจฆเฉ€ เจชเฉ‡เจธเจผเจ•เจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจฎเฉเฉฑเจ– เจจเจตเฉ€เจจเจคเจพเจตเจพเจ‚:

  • ะ”ะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ะพะฑะพะฑั‰ั‘ะฝะฝั‹ั… ะฐััะพั†ะธะธั€ะพะฒะฐะฝะฝั‹ั… ั‚ะธะฟะพะฒ (GAT, Generic Associated Types), ะดะฐัŽั‰ะธะต ะฒะพะทะผะพะถะฝะพัั‚ัŒ ัะพะทะดะฐะฒะฐั‚ัŒ ะฟัะตะฒะดะพะฝะธะผั‹ ั‚ะธะฟะพะฒ, ะฐััะพั†ะธะธั€ะพะฒะฐะฝะฝั‹ะต ั ะดั€ัƒะณะธะผ ั‚ะธะฟะพะผ, ะธ ะฟะพะทะฒะพะปััŽั‰ะธะต ัะฒัะทั‹ะฒะฐั‚ัŒ ะบะพะฝัั‚ั€ัƒะบั‚ะพั€ั‹ ั‚ะธะฟะพะฒ ั ั‚ะธะฟะฐะถะฐะผะธ. trait Foo { type Bar<โ€˜x>; }
  • ะ ะตะฐะปะธะทะพะฒะฐะฝะพ ะฒั‹ั€ะฐะถะตะฝะธะต ยซlet โ€ฆ elseยป, ะฟะพะทะฒะพะปััŽั‰ะตะต ะฟั€ะพะฒะตั€ัั‚ัŒ ัƒัะปะพะฒะธะต ัะพะพั‚ะฒะตั‚ัั‚ะฒะธั ัˆะฐะฑะปะพะฝัƒ ะฝะตะฟะพัั€ะตะดัั‚ะฒะตะฝะฝะพ ะฒะฝัƒั‚ั€ะธ ะฒั‹ั€ะฐะถะตะฝะธั ยซletยป ะธ ะฒั‹ะฟะพะปะฝัั‚ัŒ ะฟั€ะพะธะทะฒะพะปัŒะฝั‹ะน ะบะพะด, ะตัะปะธ ัˆะฐะฑะปะพะฝ ะฝะต ัะพะฒะฟะฐะดะฐะตั‚. let Ok(count) = u64::from_str(count_str) else { panic!(ยซCanโ€™t parse integer: โ€˜{count_str}'ยป); };
  • ะ ะฐะทั€ะตัˆะตะฝะพ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะต ะฒั‹ั€ะฐะถะตะฝะธั break ะดะปั ะฟั€ะตะถะดะตะฒั€ะตะผะตะฝะฝะพะณะพ ะฒั‹ั…ะพะดะฐ ะธะท ะธะผะตะฝะพะฒะฐะฝะฝั‹ั… ะฑะปะพะบะพะฒ, ะธัะฟะพะปัŒะทัƒั ะธะผั ะฑะปะพะบะฐ (ะผะตั‚ะบัƒ) ะดะปั ะพะฟั€ะตะดะตะปะตะฝะธั ะทะฐะฒะตั€ัˆะฐะตะผะพะณะพ ะฑะปะพะบะฐ. let result = โ€˜block: { do_thing(); if condition_not_met() { break โ€˜block 1; } do_next_thing(); if condition_not_met() { break โ€˜block 2; } do_last_thing(); 3 };
  • ะ”ะปั Linux ะดะพะฑะฐะฒะปะตะฝะฐ ะฒะพะทะผะพะถะฝะพัั‚ัŒ ั€ะฐะทะดะตะปัŒะฝะพะณะพ ัะพั…ั€ะฐะฝะตะฝะธั ะพั‚ะปะฐะดะพั‡ะฝะพะน ะธะฝั„ะพั€ะผะฐั†ะธะธ (split-debuginfo), ั€ะฐะฝะตะต ะดะพัั‚ัƒะฟะฝะฐั ั‚ะพะปัŒะบะพ ะดะปั ะฟะปะฐั‚ั„ะพั€ะผั‹ macOS. ะŸั€ะธ ัƒะบะฐะทะฐะฝะธะธ ะพะฟั†ะธะธ ยซ-Csplit-debuginfo=unpackedยป ะดะฐะฝะฝั‹ะต debuginfo ะฒ ั„ะพั€ะผะฐั‚ะต DWARF ะฑัƒะดัƒั‚ ัะพั…ั€ะฐะฝะตะฝั‹ ะฒ ะฝะตัะบะพะปัŒะบะพ ะพั‚ะดะตะปัŒะฝั‹ั… ะพะฑัŠะตะบั‚ะฝั‹ั… ั„ะฐะนะปะพะฒ ั ั€ะฐััˆะธั€ะตะฝะธะตะผ ยซ.dwoยป. ะŸั€ะธ ัƒะบะฐะทะฐะฝะธะธ ยซ-Csplit-debuginfo=packedยป ะฑัƒะดะตั‚ ัะพะทะดะฐะฝ ะพะดะธะฝ ะฟะฐะบะตั‚ ะฒ ั„ะพั€ะผะฐั‚ะต ยซ.dwpยป, ะฒะบะปัŽั‡ะฐัŽั‰ะธะน ะฒัะต ะดะฐะฝะฝั‹ะต debuginfo ะดะปั ะฟั€ะพะตะบั‚ะฐ. ะ”ะปั ะธะฝั‚ะตะณั€ะฐั†ะธะธ debuginfo ะฝะตะฟะพัั€ะตะดัั‚ะฒะตะฝะฝะพ ะฒ ัะตะบั†ะธัŽ .debug_* ELF-ะพะฑัŠะตะบั‚ะพะฒ ะผะพะถะฝะพ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ ะพะฟั†ะธัŽ ยซ-Csplit-debuginfo=offยป.
  • API เจฆเฉ‡ เจ‡เฉฑเจ• เจจเจตเฉ‡เจ‚ เจนเจฟเฉฑเจธเฉ‡ เจจเฉ‚เฉฐ เจธเจฅเจฟเจฐ เจฆเฉ€ เจธเจผเฉเจฐเฉ‡เจฃเฉ€ เจตเจฟเฉฑเจš เจญเฉ‡เจœเจฟเจ† เจ—เจฟเจ† เจนเฉˆ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจ—เฉเจฃเจพเจ‚ เจฆเฉ‡ เจคเจฐเฉ€เจ•เจฟเจ†เจ‚ เจ…เจคเฉ‡ เจฒเจพเจ—เฉ‚เจ•เจฐเจจ เจจเฉ‚เฉฐ เจธเจฅเจฟเจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ:
    • std::backtrace::Backtrace
    • Bound::as_ref
    • std::io::read_to_string
    • <*const T>::cast_mut
    • <*mut T>::cast_const
  • ะŸั€ะธะทะฝะฐะบ ยซconstยป, ะพะฟั€ะตะดะตะปััŽั‰ะธะน ะฒะพะทะผะพะถะฝะพัั‚ัŒ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธั ะฒ ะปัŽะฑะพะผ ะบะพะฝั‚ะตะบัั‚ะต ะฒะผะตัั‚ะพ ะบะพะฝัั‚ะฐะฝั‚, ะฟั€ะธะผะตะฝั‘ะฝ ะฒ ั„ัƒะฝะบั†ะธัั… <*const T&>::offset_from ะธ <*mut T>::offset_from
  • ะ’ ั€ะฐะผะบะฐั… ั„ะธะฝะฐะปัŒะฝะพะน ัั‚ะฐะดะธะธ ะฟะตั€ะตะฒะพะดะฐ ั€ะตะฐะปะธะทะฐั†ะธะธ ะฟั€ะพั‚ะพะบะพะปะฐ LSP (Language Server Protocol) ะฝะฐ rust-analyzer, ัƒัั‚ะฐั€ะตะฒัˆะฐั ั€ะตะฐะปะธะทะฐั†ะธั Rust Language Server (RLS) ะทะฐะผะตะฝะตะฝะฐ ะฝะฐ cะตั€ะฒะตั€-ะทะฐะณะปัƒัˆะบัƒ, ะฒั‹ะดะฐัŽั‰ะธะน ะฟั€ะตะดัƒะฟั€ะตะถะดะตะฝะธะต ั ะฟั€ะตะดะปะพะถะตะฝะธะตะผ ะฟะตั€ะตะนั‚ะธ ะฝะฐ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะต rust-analyzer.
  • ะŸั€ะธ ะบะพะผะฟะธะปัั†ะธะธ ะฒะบะปัŽั‡ะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ inline-ั€ะฐะทะฒั‘ั€ั‚ั‹ะฒะฐะฝะธั ะฟั€ะพะผะตะถัƒั‚ะพั‡ะฝะพะณะพ ะบะพะดะฐ MIR, ะฟั€ะธะฒะพะดัั‰ะฐั ะบ ัƒัะบะพั€ะตะฝะธัŽ ะบะพะผะฟะธะปัั†ะธะธ ั‚ะธะฟะพะฒั‹ั… crate-ะฟะฐะบะตั‚ะพะฒ ะฝะฐ 3-10%.
  • ะ”ะปั ัƒัะบะพั€ะตะฝะธั ัะฑะพั€ะพะบ ะฟะพ ั€ะฐัะฟะธัะฐะฝะธัŽ ะฒ ะฟะฐะบะตั‚ะฝะพะผ ะผะตะฝะตะดะถะตั€ะต Cargo ะพะฑะตัะฟะตั‡ะตะฝะฐ ัะพั€ั‚ะธั€ะพะฒะบะฐ ั€ะฐะฑะพั‚, ะพะถะธะดะฐัŽั‰ะธั… ะฒั‹ะฟะพะปะฝะตะฝะธั ะฒ ะพั‡ะตั€ะตะดะธ.

ะ”ะพะฟะพะปะฝะธั‚ะตะปัŒะฝะพ ะผะพะถะฝะพ ะพั‚ะผะตั‚ะธั‚ัŒ ะธะฝั‚ะตั€ะฒัŒัŽ ะพ ะฟั€ะธะผะตะฝะตะฝะธะธ ัะทั‹ะบะฐ Rust ะฒ ะบะพะผะฟะฐะฝะธะธ Volvo ะดะปั ั€ะฐะทั€ะฐะฑะพั‚ะบะธ ะบะพะผะฟะพะฝะตะฝั‚ะพะฒ ะฐะฒั‚ะพะผะพะฑะธะปัŒะฝั‹ั… ะธะฝั„ะพั€ะผะฐั†ะธะพะฝะฝั‹ั… ัะธัั‚ะตะผ. ะฃะถะต ััƒั‰ะตัั‚ะฒัƒัŽั‰ะธะน ะธ ะฟั€ะพั‚ะตัั‚ะธั€ะพะฒะฐะฝะฝั‹ะน ะบะพะด ะฟะตั€ะตะฟะธัั‹ะฒะฐั‚ัŒ ะฝะฐ Rust ะฝะต ะฟะปะฐะฝะธั€ัƒัŽั‚, ะฝะพ ะดะปั ะฝะพะฒะพะณะพ ะบะพะดะฐ Rust ัะฒะปัะตั‚ัั ะพะดะฝะธะผ ะธะท ะฟั€ะตะดะฟะพั‡ั‚ะธั‚ะตะปัŒะฝั‹ั… ะฒะฐั€ะธะฐะฝั‚ะพะฒ ะดะปั ะฟะพะฒั‹ัˆะตะฝะธั ะบะฐั‡ะตัั‚ะฒะฐ ั ะผะตะฝัŒัˆะธะผะธ ะทะฐั‚ั€ะฐั‚ะฐะผะธ. ะกะฒัะทะฐะฝะฝั‹ะต ั ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะตะผ ัะทั‹ะบะฐ Rust ั€ะฐะฑะพั‡ะธะต ะณั€ัƒะฟะฟั‹ ั‚ะฐะบะถะต ัะพะทะดะฐะฝั‹ ะฒ ะฐะฒั‚ะพะผะพะฑะธะปัŒะฝั‹ั… ะพะฑัŠะตะดะธะฝะตะฝะธัั… AUTOSAR (AUTomotive Open System ARchitecture) ะธ SAE (Society of Automotive Engineers).

ะšั€ะพะผะต ั‚ะพะณะพ, ะ”ัะฒะธะด ะšะปะตะนะดะตั€ะผะฐั…ะตั€ (David Kleidermacher), ะฒะธั†ะต-ะฟั€ะตะทะธะดะตะฝั‚ Google ะฟะพ ะธะฝะถะธะฝะธั€ะธะฝะณัƒ, ั€ะฐััะบะฐะทะฐะป ะพ ะฟะตั€ะตะฒะพะดะต ะฝะฐ ัะทั‹ะบ Rust ะบะพะดะฐ, ะธัะฟะพะปัŒะทัƒะตะผะพะณะพ ะฒ ะฟะปะฐั‚ั„ะพั€ะผะต Android ะดะปั ัƒะฟั€ะฐะฒะปะตะฝะธั ะบะปัŽั‡ะฐะผะธ ัˆะธั„ั€ะพะฒะฐะฝะธั, ะฐ ั‚ะฐะบะถะต ะฟั€ะธะผะตะฝะตะฝะธะธ Rust ะฒ ั€ะตะฐะปะธะทะฐั†ะธะธ ะฟั€ะพั‚ะพะบะพะปะฐ DNS over HTTPS, ะฒ ัั‚ะตะบะต ะดะปั UWB-ั‡ะธะฟะพะฒ (Ultra-Wideband) ะธ ะฒะพ ะฒั€ะตะนะผะฒะพั€ะบะต ะฒะธั€ั‚ัƒะฐะปะธะทะฐั†ะธะธ (Android Virtualization Framework), ัะฒัะทะฐะฝะฝะพะผ ั ั‡ะธะฟะพะผ Tensor G2. ะ”ะปั Android ั‚ะฐะบะถะต ั€ะฐะทะฒะธะฒะฐัŽั‚ัั ะฝะพะฒั‹ะต ัั‚ะตะบะธ ะดะปั Bluetooth ะธ Wi-Fi, ะฟะตั€ะตะฟะธัะฐะฝะฝั‹ะต ะฝะฐ ัะทั‹ะบะต Rust. ะžะฑั‰ะฐั ัั‚ั€ะฐั‚ะตะณะธั ะทะฐะบะปัŽั‡ะฐะตั‚ัั ะฒ ะฟะพัั‚ะตะฟะตะฝะฝะพะผ ัƒัะธะปะตะฝะธะธ ะทะฐั‰ะธั‚ั‹ ะฒะฝะฐั‡ะฐะปะต ั‡ะตั€ะตะท ะฟะตั€ะตะฒะพะด ะฝะฐ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะต Rust ะฝะฐะธะฑะพะปะตะต ะฝะตะทะฐั‰ะธั‰ั‘ะฝะฝั‹ั… ะธ ะถะธะทะฝะตะฝะฝะพ ะฒะฐะถะฝั‹ั… ะฟั€ะพะณั€ะฐะผะผะฝั‹ั… ะบะพะผะฟะพะฝะตะฝั‚ะพะฒ, ะฐ ะทะฐั‚ะตะผ ะพั…ะฒะฐั‚ั‹ะฒะฐั ะธ ะดั€ัƒะณะธะต ัะฒัะทะฐะฝะฝั‹ะต ั ะฝะธะผะธ ะฟะพะดัะธัั‚ะตะผั‹. ะ’ ะฟั€ะพัˆะปะพะผ ะณะพะดัƒ ัะทั‹ะบ Rust ะฑั‹ะป ะฒะบะปัŽั‡ั‘ะฝ ะฒ ั‡ะธัะปะพ ัะทั‹ะบะพะฒ, ะดะพะฟัƒัั‚ะธะผั‹ั… ะดะปั ั€ะฐะทั€ะฐะฑะพั‚ะบะธ ะฟะปะฐั‚ั„ะพั€ะผั‹ Android.

เจธเจฐเฉ‹เจค: opennet.ru

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹