Ede siseto Rust 1.92, ti o da nipasẹ iṣẹ akanṣe Mozilla ṣugbọn ni bayi ni idagbasoke labẹ awọn atilẹyin ti ominira Rust Foundation ti kii ṣe èrè, ti tu silẹ. Ede naa dojukọ aabo iranti ati pese awọn irinṣẹ lati ṣaṣeyọri isọdọkan giga ti ipaniyan iṣẹ-ṣiṣe, lakoko ṣiṣe laisi lilo agbasọ idoti ati akoko asiko (akoko asiko naa dinku si ipilẹṣẹ ipilẹ ati itọju ile-ikawe boṣewa).
Awọn ọna mimu iranti Rust ṣe igbala awọn olupilẹṣẹ lati awọn aṣiṣe nigbati o ba ni ifọwọyi awọn itọka ati daabobo lodi si awọn iṣoro ti o dide nitori mimu iranti ipele kekere, gẹgẹbi iraye si agbegbe iranti lẹhin ti o ti ni ominira, piparẹ awọn itọka asan, awọn ifasilẹ ifipamọ, ati bẹbẹ lọ. Lati kaakiri awọn ile-ikawe, pese awọn kikọ ati ṣakoso awọn igbẹkẹle, iṣẹ akanṣe n ṣe idagbasoke oluṣakoso package Ẹru. Ibi ipamọ crates.io jẹ atilẹyin fun awọn ile-ikawe alejo gbigba.
Ailewu iranti ti pese ni ipata ni akoko iṣakojọ nipasẹ ṣiṣe ayẹwo itọkasi, ṣiṣe itọju ohun-ini ohun, titọju awọn igbesi aye ohun (awọn iwọn), ati iṣiro deede wiwọle iranti lakoko ṣiṣe koodu. Ipata tun pese aabo lodi si ṣiṣan odidi odidi, nilo ipilẹṣẹ dandan ti awọn iye oniyipada ṣaaju lilo, mu awọn aṣiṣe dara julọ ni ile-ikawe boṣewa, lo imọran ti awọn itọkasi ailagbara ati awọn oniyipada nipasẹ aiyipada, nfunni titẹ aimi to lagbara lati dinku awọn aṣiṣe ọgbọn.
Awọn imotuntun akọkọ:
- Irú "kò" tí a fi àmì "!" àti ìṣírò tí ó ń ṣàlàyé tí kò padà (fún àpẹẹrẹ, iṣẹ́ "ìjáde", macro "panic!", àti àwọn ìyípo àìlópin tí kò padà), ti tẹ̀síwájú láti dúró ṣinṣin. Nínú àtúnṣe tuntun náà, a ti yí àwọn àyẹ̀wò Lint "never_type_fallback_flowing_into_unsafe" àti "dependency_on_unit_never_type_fallback" padà láti ìkìlọ̀ sí ṣíṣe àwọn àṣìṣe ìṣàkópọ̀ nípasẹ̀ àìyípadà. Àwọn àyẹ̀wò wọ̀nyí ni a ń fa nígbà tí a bá ṣàwárí àwọn ìṣòro nínú kódì náà nígbà tí a bá ń lo irú "kò" rárá.
Gẹ́gẹ́ bí àwọn ìṣirò àkọ́kọ́, irú àwọn ìṣòro kan náà wà nínú àwọn àpótí tó tó nǹkan bí 500. Lílo àwọn àyẹ̀wò lint yóò ran lọ́wọ́ láti múra sílẹ̀ fún ìdúróṣinṣin irú "kò sí rárá", èyí tí a kà sí ohun tí a ń ṣe àyẹ̀wò lọ́wọ́lọ́wọ́. Àwọn àyẹ̀wò lint ni a máa ń ṣe nígbà tí a bá ń kọ́ àwọn àpótí ní tààràtà, wọn kò sì ní ipa lórí ìkọ́lé ìgbẹ́kẹ̀lé. A tún lè pa wọ́n nípa lílo àmì "#[allow]".
- Ìwà ìṣàyẹ̀wò lint "unused_must_use", èyí tí a máa ń yọrí sí nígbà tí a bá fojú fo iye ìpadàbọ̀ iṣẹ́ kan tí a bá ti yípadà irú iṣẹ́ náà tàbí irú ìpadàbọ̀ náà. Ẹ̀yà tuntun náà kò ní ṣe ìkìlọ̀ mọ́ nípa àìfojú fo àwọn iye ìpadàbọ̀ fún àwọn irú Result àti ControlFlow, níbi tí irú tí kò ní àwọn iye ("!" tàbí "Infallible") ti pinnu ipò àṣìṣe náà. Fún àpẹẹrẹ, "fn can_never_fail() -> Result<(), Infallible> {…}".
- Ìwà àsíá "-Cpanic=abort", èyí tí, nígbà tí a bá sọ ọ́, ó ń jẹ́ kí àwọn tábìlì tí a ti yà sọ́tọ̀ fún ìfàsẹ́yìn padà, ti yípadà. Àṣàyàn "-Cforce-unwind-tables=no" wà láti padà sí ìwà tẹ́lẹ̀.
- A ti mu ìfìdí múlẹ̀ àwọn àríyànjiyàn ànímọ́ "#[macro_export]". Ṣíṣe àkíyèsí àwọn ànímọ́ tí kò tọ́ yóò yọrí sí àṣìṣe dípò ìkìlọ̀. Àwọn ìṣòro pẹ̀lú "#[macro_export]" ni a óò ṣàyẹ̀wò kìí ṣe nígbà tí a bá ń kọ́ àpótí tààrà nìkan, ṣùgbọ́n nígbà tí a bá ń kọ́ ìgbẹ́kẹ̀lé.
- Nínú òfin ààbò, a gbà á láyè láti gba àwọn àmì ìdánimọ̀ ("& raw [mut | const]") sí àwọn pápá ní irú ẹgbẹ́.
- A ti ṣe àgbékalẹ̀ ìrànlọ́wọ́ ìsopọ̀ oníyípadà fún ìpele àfojúsùn mips64el-unknown-linux-muslabi64.
- A ti gbe ẹya ti o kere julọ ti ẹwọn irinṣẹ ita LLVM soke si ẹka LLVM 20.
- Apa tuntun ti API ni a ti gbe si ẹka ti iduroṣinṣin, pẹlu awọn ọna ati awọn imuse ti awọn abuda ti jẹ imuduro:
- Kì í ṣe Òdo ::div_ceel
- Ibi ti a n lo::file_as_c_str
- RwLockWriteGuard::downgrade
- Àpótí::new_zeroed
- Àpótí::ìpín_aláìní_ẹ̀rọ_ìwé tuntun
- Rc::new_zeroed
- Rc::new_zeroed_slice
- Arc::new_zeroed
- Apá::new_zeroed_slice
- BTree_map::Ìwéwọlé::ìfipamọ́_ìwéwọlé
- map_btree::Àìsí Àkókò Ìbáṣepọ̀::fi sii_ìwé
- impl Fa siwaju fún proc_macro::TokenStream
- impl Fa siwaju fún proc_macro::TokenStream
- impl Fa siwaju fún proc_macro::TokenStream
- impl Fa siwaju fún proc_macro::TokenStream
- Ami “const” ni a lo ninu awọn iṣẹ:
- <[_]>::yipo_osi
- <[_]>::yipo_ọtun
- Olùṣàkóso package Cargo ti tún gbìyànjú "git fetch" bí ìbéèrè àkọ́kọ́ bá kùnà. A ti fi àwọn èròjà fún ìṣọ̀kan pẹ̀lú Ghostty terminal emulator kún un. A ti fi orí tuntun kan kún ìwé ìtọ́ni náà.
Ni afikun, a fẹ lati ṣe afihan awọn iṣẹ akanṣe ati awọn iṣẹlẹ ti a kede laipẹ ti o ni ibatan si Rust:
- Ferrocene kede iwe-ẹri IEC 61508 (SIL 2) fun ile-ikawe libcore rẹ, eyiti o pẹlu apakan awọn ipe lati inu ile-ikawe ipilẹ Rust. Iwe-ẹri yii jẹrisi ibamu ile-ikawe pẹlu awọn ibeere fun awọn eto ile-iṣẹ pataki. Ferrocene ni a mọ fun ṣiṣẹda awọn irinṣẹ irinṣẹ fun idagbasoke awọn ohun elo Rust fun Awọn Eto Abo-Critical (SCS) ati fun mimu Ferrocene Language Specification (FLS) ṣetọju, eyiti o ṣiṣẹ bi ipilẹ fun alaye itọkasi Rust.
- Iced 0.14, ilé ìkàwé fún ṣíṣẹ̀dá àwọn ojú ọ̀nà olùlò àwòrán nípa lílo àwòṣe ètò ìṣiṣẹ́ tí ń ṣe àtúnṣe, ti jáde. Iced ṣe àgbékalẹ̀ àwòrán tí àwọn olùgbékalẹ̀ mọ̀ nípa èdè ìṣàfihàn Elm. Ó ní àwọn ẹ̀rọ wídíò tí a ti ṣe tán pẹ̀lú agbára láti ṣẹ̀dá àwọn olùdarí asynchronous àti láti lo ìṣètò àtúnṣe ti àwọn èròjà ìṣàfihàn tí ó da lórí fèrèsé àti ìwọ̀n ìbòjú. Ọ̀pọ̀lọpọ̀ ẹ̀rọ ìṣàfihàn ni a pèsè, tí ó ń ṣe àtìlẹ́yìn fún Vulkan, Metal, àti DX12. Láàrín àwọn iṣẹ́ pàtàkì tí ó ń lo Iced ni àyíká kọ̀ǹpútà COSMIC.
Ẹ̀yà tuntun náà fi àwọn widgets "table," "grid," "sensor," "float," àti "pin" kún un, àti àwọn agbára widget tí a ti fẹ̀ sí i fún ṣíṣiṣẹ́ pẹ̀lú Markdown. Àwọn ẹ̀yà ara wọ̀nyí ni a ti ṣe àgbékalẹ̀: ipò ìfìhàn oníṣe; àwọn ọ̀pá ìyípo tí ó farahàn nígbà tí a bá nílò rẹ̀; API ìṣẹ̀dá; ìtìlẹ́yìn ọ̀nà ìtẹ̀wọlé; ipò aláìlórí; agbára láti ṣe àwọn àyípadà láìdáwọ́ ìṣàfilọ́lẹ̀ dúró (gbígbé àgbékalẹ̀ gbígbóná); ìyípadà àwòrán parallel; àti àwọn irinṣẹ́ ìṣàyẹ̀wò àti ìṣàfihàn iṣẹ́.
- Iṣẹ́ àgbékalẹ̀ Ribir ń ṣe àgbékalẹ̀ ìkàwé kan fún ṣíṣẹ̀dá àwọn ohun èlò onípele-pupọ pẹ̀lú ojú ìwòran àwòrán, èyí tí ó ń jẹ́ kí lílo ìpìlẹ̀ koodu ohun èlò kan ṣoṣo láti ṣẹ̀dá àwọn ohun èlò àwòrán fún àwọn iru ẹrọ oríṣiríṣi (Linux, Windows, macOS, ninu awọn eto naa Android (àti iOS). Èdè ìfọwọ́sowọ́pọ̀ ìpolongo tí a gbé karí Rust macros, àwọn ohun èlò ìṣiṣẹ́, àwọn àkòrí, àti ìṣàfihàn tí ó dá lórí wgpu ló wà.
- A ṣe àgbékalẹ̀ Island, ohun èlò ìṣiṣẹ́ tí a ṣe fún ṣíṣe ohun èlò tí a fi sandbox ṣe. Ó ń lo ẹ̀rọ Landlock fún yíyan àpótí. Island fún ọ láàyè láti ṣẹ̀dá àwọn òfin ní ìrísí TOML kí o sì lò wọ́n sí àwọn ohun èlò tí a fi Landlock ṣe láìsí pé kí o yí àwọn koodu padà. Láìdàbí Firejail, Island kò nílò àwọn àǹfààní root tàbí èyíkéyìí àṣẹ pàtàkì.
- Google ti ṣe agbekalẹ Wasefire, irinṣẹ irinṣẹ ti o da lori Rust fun idagbasoke famuwia aabo. Ero pataki ni lati ṣiṣẹ awọn oluṣakoso lọtọ (awọn applets) lori agbegbe famuwia ti o wa labẹ (ipilẹ). Idagbasoke famuwia jẹ agnostic ede - awọn paati famuwia le wa ni ifijiṣẹ bi WebAssembly pẹlu awọn itẹsiwaju WASI (WebAssembly System Interface) ati ṣiṣe nipasẹ lilo Wasmtime.
- Wọ́n ti tú Patina 18, firmware UEFI tí wọ́n kọ sínú Rust. Patina ń rọ́pò àwọn èròjà firmware UEFI pàtàkì, a sì lè lò ó láti fi díẹ̀díẹ̀ gbé firmware tó wà tẹ́lẹ̀ tí wọ́n kọ sínú C sí Rust.
- Iṣẹ́ Brimstone ń ṣe àgbékalẹ̀ ẹ̀rọ JavaScript tuntun kan, tí a kọ láti ìbẹ̀rẹ̀ pẹ̀lú Rust. Fọ́ọ̀mù rẹ̀ lọ́wọ́lọ́wọ́ ti ṣe àtìlẹ́yìn fún ju 97% àwọn iṣẹ́ ECMAScript 2026 lọ. Ẹ̀rọ foju tí a fi ń ṣe bytecode dá lórí ètò ẹ̀rọ V8.
- Iṣẹ́ àgbékalẹ̀ Catten ń ṣe àgbékalẹ̀ kernel kan fún ètò ìṣiṣẹ́ CharlotteOS tí a ṣe àyẹ̀wò, tí a kọ ní Rust. Kernel náà ń ṣe àtìlẹ́yìn fún ìṣàkóso ìwọlé tí ó dá lórí agbára (tí ó jọ Fuchsia) ó sì ń lo ètò àwọn ohun èlò tí a pín káàkiri tí ó jọ Plan 9, pẹ̀lú àwọn ipa ọ̀nà fáìlì tí URI ń bójútó.
- Wọ́n ti tú ìkarahun ìfọwọ́sowọ́pọ̀ Fish 4.2.0 (ìkarahun ìfọwọ́sowọ́pọ̀ tó rọrùn láti lò) jáde. Ẹ̀ka 4.x yìí ṣe pàtàkì fún ìṣípò kódù rẹ̀ láti C++ sí Rust.
- Soundflare ti ṣí ìkàwé tokio-quiche Rust sílẹ̀ láti so QUIC àti HTTP/3 pọ̀ mọ́ àwọn ohun èlò asynchronous tí ó dá lórí ìlànà Tokyo.
- Iṣẹ́ Tor Project ti tú Arti 1.7 àti 1.8 jáde, ìlò Rust ti ẹ̀rọ Tor toolchain. Nígbà tí ìpìlẹ̀ koodu Arti bá dé ìpele tí ó lè rọ́pò ìlò C pátápátá, àwọn olùgbékalẹ̀ Tor fẹ́ sọ Arti di olùgbékalẹ̀ Tor àkọ́kọ́ kí wọ́n sì dín ìtọ́jú C kù díẹ̀díẹ̀.
Ẹ̀yà tuntun yìí mú kí ìlò ìwádìí tí a dínkù fún iṣẹ́ alubosa dúró ṣinṣin nípa lílo àṣẹ oníbàárà ("ìwádìí tí a dínkù"). Ní àfikún sí àwọn proxies SOCKS, a ti fi ìtìlẹ́yìn fún àwọn proxies HTTP nípa lílo ọ̀nà CONNECT kún un. A ti ṣe àgbékalẹ̀ àkókò àtúnṣe ní ìbámu pẹ̀lú ẹrù náà. A ti fi ìtìlẹ́yìn ìdánwò fún tokio-console kún un. Ìdàgbàsókè iṣẹ́ fún àwọn relays àti apèsè Àwọn Ìwé Ìtọ́sọ́nà (Aláṣẹ Àkójọ). A fi àṣẹ "arti hsc ctor-migrate" kún un fún gbígbé àwọn kọ́kọ́rọ́ láti ọ̀dọ̀ C client sí ibi ìtọ́jú kọ́kọ́rọ́ Arti. A fi àwọn ètò kún un fún ṣíṣàkóso ìfilọ́lẹ̀ àwọn iṣẹ́ àlùbọ́sà.
- RustDB, ètò ìṣàkóso ibi ìpamọ́ dátà tí PostgreSQL mí sí (DBMS) tí a kọ ní Rust, ni a ti tú síta. Ó ń ṣe àtìlẹ́yìn fún àwọn iṣẹ́ SQL ìpìlẹ̀ (CREATE/DROP TABLE/VIEW, INSERT, SELECT, UPDATE, DELETE, SHOW TABLES, EXPLAIN, VACUUM), àwọn ìṣòwò, MVCC, WAL (Write-Ahead Log), àwọn àtọ́ka, àti ìsopọ̀mọ́ra nípasẹ̀ ìlànà ìbáramu PostgreSQL. A ṣe àgbékalẹ̀ RustDB nípa lílo AI.
orisun: opennet.ru
