Ăshte publikuar lĂ«shimi i gjuhĂ«s sĂ« programimit Rust 1.92, qĂ« u krijua nga projekti Mozilla, por tani zhvillohet nĂ«n mbĂ«shtetje tĂ« organizatĂ«s jo-fitimprurĂ«se Rust Foundation. Gjuha pĂ«rqendrohet nĂ« sigurinĂ« e punĂ«s me memorien dhe ofron mjete pĂ«r tĂ« arritur njĂ« paralelizĂ«m tĂ« lartĂ« nĂ« ekzekutimin e detyrave, pĂ«r kĂ«tĂ« arsye pa pĂ«rdorur grumbullues mbeturinash dhe runtime (runtime reduktohet nĂ« fillimin bazik dhe mbĂ«shtetje pĂ«r bibliotekĂ«n standarde).
Metodat e punës me kujtesën në Rust e çlirojnë zhvilluesin nga gabimet gjatë manipulimit me treguesit dhe e mbrojnë atë nga problemet që lindin për shkak të punës me kujtesën në nivel të ulët, si qasja në një zonë kujtese pas çlirimit të saj, dereferencimi i treguesve null, dalja jashtë kufijve të buffers etj. Për shpërndarjen e bibliothekave, sigurimin e ndërtimit dhe menaxhimin e varësive, projekti zhvillohet me menaxherin e paketave Cargo. Për mbështetje të bibliothekave, ekziston një repository crates.io.
Puna e sigurt me kujtesën sigurohet në Rust gjatë kompilimit përmes verifikimit të referencave, ndjekjes së pronësisë së objekteve, llogaritjes së kohëzgjatjes së jetës së objekteve (fushave të dukshmërisë) dhe vlerësimit të saktësisë së qasjes në kujtesë gjatë ekzekutimit të kodit. Rust gjithashtu ofron mjete për mbrojtjen nga tejkalimet e numrave të plotë, kërkon inicializimin e detyrueshëm të vlerave të variablave para përdorimit, trajton më mirë gabimet në bibliotekën standarde, aplikon konceptin e referencave dhe variablave të pandryshueshëm (immutable) si standard dhe ofron tipizimin e fortë statik për të minimizuar gabimet logjike.
Novitetet kryesore:
- Stabilizimi i tipit "never", i shënuar me simbolin "!" dhe që përcakton llogaritë që kurrë nuk kthejnë vlera (për shembull, funksioni "exits", makrosi "panic!" dhe ciklet e pafund kurrë nuk kthejnë kontrollin), vazhdon. Në versionin e ri, kontrollimet Lint "never_type_fallback_flowing_into_unsafe" dhe "dependency_on_unit_never_type_fallback" tani nga default kalohen nga një sigurim të paralajmërimeve në gjenerimin e gabimeve të kompilimit. Këto kontrollime aktivizohen kur ka probleme në kod, që shfaqen gjatë përdorimit të tipit "never".
Sipas vlerësimeve preliminare, probleme të ngjashme ekzistojnë në rreth 500 paketa crate. Aktivizimi i kontrollimeve lint do të ndihmojë në përgatitjen për stabilizimin e tipit "never", i cili aktualisht është klasifikuar si një mundësi eksperimentale. Kontrollimet lint aktivizohen vetëm gjatë ndërtimit të drejtpërdrejtë të pakove dhe nuk shfaqen gjatë ndërtimit të varësive. Kontrollimet gjithashtu mund të çaktivizohen përmes atributit "#[allow]".
- Në mënyrë të ndryshme, është ndryshuar sjellja e kontrollit lint "unused_must_use", që aktivizohet kur injorohet vlera e kthyer nga funksioni, nëse funksioni ose tipi i kthyer shënohet me atributin "#[must_use]". Në versionin e ri, ka ndaluar daljen e paralajmërimeve për injorimin e vlerave të kthyer me tipe Result dhe ControlFlow, në të cilat gjendja e gabimit përcaktohet nga tipi pa vlera ("!" ose "Infallible"). Për shembull, "fn can_never_fail() -> Result {...}".
- Një ndryshim është bërë në sjelljen e flags "-Cpanic=abort", ku aktivizohet gjenerimi i tabelave unwind si default për ekzekutimin e pjesshëm të gjurmës (backtrace). Për të rikthyer sjelljen e mëparshme, ekziston opsioni "-Cforce-unwind-tables=no".
- Kontrolli i argumenteve të atributit "#[macro_export]" është bërë më i ashpër. Kur janë të shënuara atribute të pavlefshme, tani do të jepet një gabim, jo një paralajmërim. Problemet me "#[macro_export]" do të kontrollohen jo vetëm gjatë ndërtimit të drejtpërdrejtë të paketës crate, por edhe gjatë ndërtimit të varësive.
- Në kodin safe lejohet marrja e treguesve raw («&raw [mut | const]») në fushat e tipeve union.
- Për platformën e synuar mips64el-unknown-linux-muslabi64 është implementuar mbështetje për lidhjen dinamike.
- Versioni minimal i mbështetur i mjetit të jashtëm LLVM është rritur deri në degën LLVM 20.
- Një grup i ri API u kalua në kategorinë e stabilizuar, përfshirë stabilizimin e metodave dhe implementimeve të trait-ëve:
- NonZero<u{N}>::div_ceil
- Location::file_as_c_str
- RwLockWriteGuard::downgrade
- Box::new_zeroed
- Box::new_zeroed_slice
- Rc::new_zeroed
- Rc::new_zeroed_slice
- Arc::new_zeroed
- Arc::new_zeroed_slice
- btree_map::Entry::insert_entry
- btree_map::VacantEntry::insert_entry
- impl Extend<proc_macro::Group> for proc_macro::TokenStream
- impl Extend<proc_macro::Literal> for proc_macro::TokenStream
- impl Extend<proc_macro::Punct> for proc_macro::TokenStream
- impl Extend<proc_macro::Ident> for proc_macro::TokenStream
- Priznaku «const» aplicohet në funksione:
- <[_]>::rotate_left
- <[_]>::rotate_right
- Menaxheri i paketave Cargo siguron përsëritjen e operacionit «git fetch» në rast të dështimit të kërkesës së parë. Janë shtuar komponentë për integrimin me emulatorin e terminalit Ghostty. Të dhënat e reja janë shtuar në udhëzues për optimizimin e procesit të ndërtimit.
Gjithashtu mund të theksohet projektet dhe ngjarjet e shpallura së fundmi të lidhura me Rust:
- Kompania Ferrocene shpalli përfundimin e certifikimit IEC 61508 (SIL 2) për bibliotekën libcore, e cila përfshin një nëngrup thirrjesh nga biblioteka standarde bërthamor Rust. Certifikimi konfirmon përputhshmërinë e bibliotekës me kërkesat për sisteme industriale kritikisht të rëndësishme. Kompania Ferrocene është e njohur për krijimin e mjeteve për zhvillimin e aplikacioneve në gjuhën Rust për sisteme kritikisht të rëndësishme, si dhe për mbështetje në specifikimin FLS (Ferrocene Language Specification), mbi të cilin zhvillohet specifikimi standard për gjuhën Rust.
- ĂshtĂ« publikuar versĂ”esi i bibliotekĂ«s Iced 0.14 pĂ«r krijimin e ndĂ«rfaqeve grafike tĂ« pĂ«rdoruesit duke pĂ«rdorur modelin e programimit reaktiv. NĂ« Iced Ă«shtĂ« implementuar njĂ« arkitekturĂ« e njohur pĂ«r zhvilluesit qĂ« kanĂ« njohuri me gjuhĂ«n e ndĂ«rtimit deklarativ tĂ« ndĂ«rfaqeve Elm. Ofrohet njĂ« set i gatshĂ«m i widgeteve me mundĂ«sinĂ« e krijimit tĂ« pĂ«rpunuesve asinkronĂ« dhe aplikimit tĂ« disposicionit adaptiv tĂ« elementeve tĂ« ndĂ«rfaqes nĂ« varĂ«si tĂ« madhĂ«sisĂ« sĂ« dritares dhe ekranit. Disponohen disa motorĂ« pĂ«r vizatimin qĂ« mbĂ«shtesin Vulkan, Metal dhe DX12. NjĂ« nga projektet e mĂ«dha qĂ« pĂ«rdorin Iced Ă«shtĂ« mjedisi i punĂ«s COSMIC.
NĂ« versionin e ri janĂ« shtuar widget-at "table", "grid", "sensor", "float" dhe "pin", si dhe janĂ« zgjeruar mundĂ«sitĂ« e widget-it pĂ«r tâu punuar me struktura Markdown. JanĂ« realizuar: moda reaktive e vizatimit; shiritat e rrokullisjes qĂ« shfaqen kur Ă«shtĂ« e nevojshme; API pĂ«r animacione; mbĂ«shtetje pĂ«r metodat e hyrjes; modaliteti headless; mundĂ«sia e ndryshimeve pa ndaluar aplikacionin (hot reloading); paralelizimi i dekodimit tĂ« imazheve; mjetet pĂ«r debugging dhe profilimin e performancĂ«s.
- Projekti Ribir po zhvillon një bibliotekë për krijimin e aplikacioneve multi-platformë me ndërfaqe grafike, duke lejuar përdorimin e një baze të përbashkët kodi për formimin e aplikacioneve grafike për platforma të ndryshme (Linux, Windows, macOS, në planet Android dhe iOS). Janë të aksesueshme një gjuhë deklarative për ndërtimin e ndërfaqeve bazuar në makro Rust, më shumë se 20 widget-a, tema vizuale, dhe rendering bazuar në wgpu.
- ĂshtĂ« prezantuar utilitari Island, i destinuar pĂ«r ekzekutimin e izoluar tĂ« aplikacioneve. PĂ«r izolimin e sandbox-it, pĂ«rdoret mekanizmi Landlock. Island lejon krijimin e rregullave nĂ« formatin TOML dhe aplikimin e tyre pĂ«r izolimin e ekzekutuesve ekzistues me ndihmĂ«n e Landlock, pa qenĂ« e nevojshme tĂ« bĂ«hen ndryshime nĂ« kod. Ndryshe nga Firejail, utilitari Island nuk kĂ«rkon tĂ« drejtat e root-it dhe as fuqitĂ« e veçanta.
- Kompania Google prezantoi njĂ« mjet tĂ« shkruar nĂ« Rust, Wasefire, pĂ«r zhvillimin e firmware-ve tĂ« sigurta. Ideja kryesore Ă«shtĂ« ekzekutimi i trajtuesve tĂ« izoluar (applet-Ă«ve) mbi njĂ« ambient bazĂ« tĂ« firmware-it (platformĂ«s). Zhvillimi i firmware-it nuk Ă«shtĂ« i lidhur me gjuhĂ«t e programimit â komponentĂ«t e firmware-it mund tĂ« ofrohen nĂ« formatin WebAssembly me zgjerime WASI (WebAssembly System Interface) dhe tĂ« ekzekutohen me ndihmĂ«n e Wasmtime.
- ĂshtĂ« publikuar versioni i firmware-it UEFI Patina 18, i shkruar nĂ« Rust. Patina ofron zĂ«vendĂ«sim pĂ«r komponentĂ«t bazĂ« tĂ« firmware-it UEFI dhe mund tĂ« pĂ«rdoret pĂ«r njĂ« kalim gradual tĂ« firmware-ve ekzistuese tĂ« shkruara nĂ« C nĂ« pĂ«rdorimin e gjuhĂ«s Rust.
- Projekti Brimstone po zhvillon një motor JavaScript të ri, të shkruar nga e para në gjuhën Rust. Në formën aktuale, tashmë mbështetet më shumë se 97% e mundësive të ECMAScript 2026. Makina virtuale për ekzekutimin e kodit byte është krijuar me vëmendje ndaj arkitekturës së motorit V8.
- Projekti Catten zhvillon bërthamën për sistemin operativ eksperimental CharlotteOS, i shkruar në Rust. Bërthama mbështet menaxhimin e aksesit të bazuar në 'kapacitet' (në ngjashmëri me Fuchsia) dhe përdor një hierarki të shpërndarë burimesh të ngjashme me Plan 9 me adresimin e rrugëve të skedarëve përmes URI.
- ĂshtĂ« publikuar dalja e shell-it interaktiv Fish 4.2.0 (shelli interaktiv miqĂ«sor). Dega 4.x Ă«shtĂ« e njohur pĂ«r pĂ«rkthimin e plotĂ« tĂ« kodit tĂ« bazĂ«s nga gjuha C++ nĂ« Rust.
- Kompania Cloudflare ka hapur kodin e bibliotekës Rust tokio-quiche, për të integruar mbështetje për protokollet QUIC dhe HTTP/3 në aplikacione asinkrone të bazuara në framework-un Tokio.
- Projekti Tor publikoi daljet Arti 1.7 dhe 1.8, implementime të instrumenteve Tor, të shkruara në gjuhën Rust. Kur kodi Arti të arrijë nivelin që mund të zëvendësojë plotësisht versionin në C, zhvilluesit e Tor kanë për qëllim t'i japin Arti statusin e zbatimit kryesor të Tor dhe gradualisht të ndërpresin mbështetje për implementimin në C.
Në versionin e ri është stabilizuar implementimi i definicionit të kufizuar të shërbimeve onion me përdorimin e autorizimit të klientit ('restricted-discovery'). Shtohet mbështetje për proxy HTTP, duke përdorur metodën CONNECT përveç proxy SOCKS. Janë implementuar kohë matëse adaptuese në varësi të ngarkesës. Shtohet mbështetje eksperimentale për tokio-console. Vazhdohet zhvillimi i funksionaliteteve për relaye dhe serverësh autoritetet e direktorisë (Directory Authority). Shtohet komanda 'arti hsc ctor-migrate' për të transferuar çelësat nga klienti në C në depozitat e çelësave Arti. Shtohen cilësime për të menaxhuar nisjen e shërbimeve onion.
- ĂshtĂ« publikuar SGBD RustDB, e krijuar nĂ« gjuhĂ«n Rust nĂ«n ndikimin e PostgreSQL. MbĂ«shteten operacionet themelore SQL (CREATE/DROP TABLE/VIEW, INSERT, SELECT, UPDATE, DELETE, SHOW TABLES, EXPLAIN, VACUUM), transaksionet, MVCC, WAL (Write-Ahead Log), indekset, lidhja pĂ«rmes protokollit tĂ« pĂ«rputhshĂ«m me PostgreSQL. GjatĂ« shkruarjes sĂ« RustDB, Ă«shtĂ« pĂ«rdorur AI.
Burimi: opennet.ru
