Lëshimi i Rust 1.92. Projeket Rust për GUI, izolimin e sandbox-it dhe krijimin e firmware-it

Ë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

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster