Rust 1.92 u publikua. Rust Projects për GUI, Sandboxing dhe Zhvillim Firmware

Gjuha e programimit Rust 1.92, e themeluar nga projekti Mozilla, por që tani zhvillohet nën kujdesin e organizatës së pavarur jofitimprurëse Rust Foundation, është publikuar. Gjuha përqendrohet në sigurinë e memories dhe ofron mjete për arritjen e paralelizmit të lartë të ekzekutimit të detyrave, ndërkohë që funksionon pa përdorimin e një mbledhësi të mbeturinave dhe kohës së ekzekutimit (koha e ekzekutimit reduktohet në inicializimin bazë dhe mirëmbajtjen e bibliotekës standarde).

Metodat e trajtimit të memories Rust e ruajnë zhvilluesin nga gabimet gjatë manipulimit të treguesve dhe mbrojnë nga problemet që lindin për shkak të trajtimit të nivelit të ulët të kujtesës, të tilla si qasja në një zonë memorie pasi të jetë liruar, mosreferencimi i treguesve null, tejkalimet e buferit, etj. Për të shpërndarë bibliotekat, për të ofruar ndërtime dhe për të menaxhuar varësitë, projekti zhvillon menaxherin e paketave Cargo. Depoja e crates.io mbështetet për pritjen e bibliotekave.

Siguria e memories sigurohet në Rust në kohën e përpilimit përmes kontrollit të referencës, mbajtjes së gjurmës së pronësisë së objektit, mbajtjes së gjurmëve të jetëgjatësisë së objektit (scopes) dhe vlerësimit të saktësisë së aksesit në kujtesë gjatë ekzekutimit të kodit. Rust siguron gjithashtu mbrojtje kundër tejmbushjeve të numrave të plotë, kërkon inicializimin e detyrueshëm të vlerave të variablave përpara përdorimit, trajton më mirë gabimet në bibliotekën standarde, zbaton konceptin e referencave dhe variablave të pandryshueshme si parazgjedhje, ofron shtypje të fortë statike për të minimizuar gabimet logjike.

Risitë kryesore:

  • Lloji "kurrĂ«", i shĂ«nuar me simbolin "!" dhe qĂ« pĂ«rcakton llogaritjet qĂ« nuk kthehen kurrĂ« (pĂ«r shembull, funksioni "exits", makroja "panic!" dhe sythet e pafundme qĂ« nuk kthehen kurrĂ«), ka vazhduar tĂ« stabilizohet. NĂ« versionin e ri, kontrollet Lint "never_type_fallback_flowing_into_unsafe" dhe "dependency_on_unit_never_type_fallback" janĂ« ndryshuar nga paralajmĂ«rim nĂ« gjenerim gabimesh kompilimi si parazgjedhje. KĂ«to kontrolle aktivizohen kur zbulohen probleme nĂ« kod kur pĂ«rdoret lloji "kurrĂ«".

    Sipas vlerësimeve paraprake, probleme të ngjashme ekzistojnë në afërsisht 500 paketa arkash. Aktivizimi i kontrolleve të fijeve do të ndihmojë në përgatitjen për stabilizimin e tipit "kurrë", i cili aktualisht konsiderohet një veçori eksperimentale. Kontrollet e fijeve aktivizohen vetëm kur ndërtohen drejtpërdrejt paketa dhe nuk ndikojnë në ndërtimet e varësive. Ato gjithashtu mund të çaktivizohen duke përdorur atributin "#[lejo]".

  • Sjellja e kontrollit tĂ« fillesĂ«s "unused_must_use", e cila aktivizohet kur vlera e kthimit tĂ« njĂ« funksioni injorohet nĂ«se funksioni ose lloji i kthimit Ă«shtĂ« shĂ«nuar me atributin "#[must_use]", Ă«shtĂ« ndryshuar. Versioni i ri nuk gjeneron mĂ« paralajmĂ«rime pĂ«r injorimin e vlerave tĂ« kthimit pĂ«r llojet Result dhe ControlFlow, ku gjendja e gabimit pĂ«rcaktohet nga njĂ« lloj pa vlera ("!" ose "I PagabueshĂ«m"). PĂ«r shembull, "fn can_never_fail() -> Result<(), I PagabueshĂ«m> {
}".
  • Sjellja e flamurit "-Cpanic=abort", i cili, kur specifikohet, aktivizon gjenerimin e parazgjedhur tĂ« tabelave tĂ« çaktivizimit pĂ«r gjurmim prapa, Ă«shtĂ« ndryshuar. Opsioni "-Cforce-unwind-tables=no" Ă«shtĂ« i disponueshĂ«m pĂ«r t'u rikthyer nĂ« sjelljen e mĂ«parshme.
  • Validimi i argumenteve tĂ« atributit "#[macro_export]" Ă«shtĂ« forcuar. Specifikimi i atributeve tĂ« pavlefshme tani do tĂ« rezultojĂ« nĂ« njĂ« gabim nĂ« vend tĂ« njĂ« paralajmĂ«rimi. Problemet me "#[macro_export]" do tĂ« kontrollohen jo vetĂ«m gjatĂ« ndĂ«rtimit tĂ« drejtpĂ«rdrejtĂ« tĂ« paketave nĂ« arkĂ«, por edhe gjatĂ« ndĂ«rtimit tĂ« varĂ«sive.
  • NĂ« kodin e sigurt, lejohet tĂ« merren tregues tĂ« papĂ«rpunuar ("&raw [mut | const]") pĂ«r fushat nĂ« llojet e bashkimit.
  • MbĂ«shtetja e lidhjes dinamike Ă«shtĂ« zbatuar pĂ«r platformĂ«n e synuar mips64el-unknown-linux-muslabi64.
  • Versioni minimal i mbĂ«shtetur i zinxhirit tĂ« mjeteve tĂ« jashtme LLVM Ă«shtĂ« ngritur nĂ« degĂ«n LLVM 20.
  • NjĂ« pjesĂ« e re e API-sĂ« Ă«shtĂ« zhvendosur nĂ« kategorinĂ« e qĂ«ndrueshme, duke pĂ«rfshirĂ« metodat dhe implementimet e tipareve janĂ« stabilizuar:
    • Jo-Zero ::div_ceil
    • Vendndodhja::file_as_c_str
    • RwLockWriteGuard::downgrade
    • Kutia::new_zeroed
    • Kutia::new_zeroed_slice
    • Rc::new_zeroed
    • Rc::new_zeroed_slice
    • Arc::new_zeroed
    • Arc::new_zeroed_slice
    • btree_map::Hynja::insert_entry
    • btree_map::VacantEntry::insert_entry
    • impl Zgjero pĂ«r proc_macro::TokenStream
    • impl Zgjero pĂ«r proc_macro::TokenStream
    • impl Zgjero pĂ«r proc_macro::TokenStream
    • impl Zgjero pĂ«r proc_macro::TokenStream
  • Shenja "konst" pĂ«rdoret nĂ« funksionet:
    • <[_]>::rrotullo_majtas
    • <[_]>::rrotate_right
  • Menaxheri i paketave Cargo tani riprovon "git fetch" nĂ«se kĂ«rkesa e parĂ« dĂ«shton. JanĂ« shtuar komponentĂ« pĂ«r integrimin me emulatorin e terminalit Ghostty. NjĂ« kapitull i ri mbi optimizimin e procesit tĂ« ndĂ«rtimit Ă«shtĂ« shtuar nĂ« manual.

Për më tepër, dëshirojmë të nxjerrim në pah projektet dhe ngjarjet e njoftuara së fundmi që lidhen me Rust:

  • Ferrocene njoftoi certifikimin IEC 61508 (SIL 2) pĂ«r bibliotekĂ«n e saj libcore, e cila pĂ«rfshin njĂ« nĂ«ngrup thirrjesh nga biblioteka bazĂ« standarde Rust. Ky certifikim konfirmon pajtueshmĂ«rinĂ« e bibliotekĂ«s me kĂ«rkesat pĂ«r sistemet kritike industriale. Ferrocene Ă«shtĂ« i njohur pĂ«r krijimin e mjeteve pĂ«r zhvillimin e aplikacioneve Rust pĂ«r Sistemet Kritike tĂ« SigurisĂ« (SCS) dhe pĂ«r mirĂ«mbajtjen e Specifikimit tĂ« GjuhĂ«s Ferrocene (FLS), i cili shĂ«rben si bazĂ« pĂ«r specifikimin referues tĂ« Rust.
  • ËshtĂ« publikuar Iced 0.14, njĂ« bibliotekĂ« pĂ«r krijimin e ndĂ«rfaqeve grafike tĂ« pĂ«rdoruesit duke pĂ«rdorur njĂ« model programimi reaktiv. Iced zbaton njĂ« arkitekturĂ« tĂ« njohur pĂ«r zhvilluesit qĂ« janĂ« tĂ« familjarizuar me gjuhĂ«n deklarative tĂ« ndĂ«rfaqes Elm. Ai ofron njĂ« grup tĂ« gatshĂ«m widget-esh me aftĂ«sinĂ« pĂ«r tĂ« krijuar trajtues asinkronĂ« dhe pĂ«r tĂ« aplikuar paraqitje adaptive tĂ« elementĂ«ve tĂ« ndĂ«rfaqes bazuar nĂ« madhĂ«sinĂ« e dritares dhe ekranit. Ofrohen disa motorĂ« renderimi, qĂ« mbĂ«shtesin Vulkan, Metal dhe DX12. NdĂ«r projektet kryesore qĂ« pĂ«rdorin Iced Ă«shtĂ« mjedisi i desktopit COSMIC.

    Versioni i ri shton veglat "tabelë", "rrjet", "sensor", "fluturues" dhe "pin", si dhe aftësi të zgjeruara të veglave për të punuar me Markdown. Janë zbatuar veçoritë e mëposhtme: modaliteti i renderimit reaktiv; shirita lëvizës që shfaqen kur është e nevojshme; një API animacioni; mbështetje për metodën e hyrjes; modaliteti pa kokë; aftësia për të bërë ndryshime pa ndaluar aplikacionin (ringarkim i nxehtë); dekodim paralel i imazhit; dhe mjete për debugging dhe profilizim të performancës.

  • Projekti Ribir zhvillon njĂ« bibliotekĂ« pĂ«r krijimin e aplikacioneve shumĂ«platformĂ«she me njĂ« ndĂ«rfaqe grafike, duke lejuar pĂ«rdorimin e njĂ« baze tĂ« pĂ«rbashkĂ«t kodi aplikacioni pĂ«r tĂ« krijuar aplikacione grafike pĂ«r platforma tĂ« ndryshme (Linux, Windows, macOS, nĂ« planet Android (dhe iOS). NjĂ« gjuhĂ« ndĂ«rfaqeje deklarative e bazuar nĂ« makrot Rust, mbi 20 widget-e, tema dhe renderim i bazuar nĂ« wgpu janĂ« tĂ« disponueshme.
  • Prezantohet Island, njĂ« program i projektuar pĂ«r ekzekutimin e aplikacioneve nĂ« sandbox. Ai pĂ«rdor mekanizmin Landlock pĂ«r sandboxing. Island ju lejon tĂ« krijoni rregulla nĂ« formatin TOML dhe t'i aplikoni ato nĂ« ekzekutuesit ekzistues tĂ« Landlock pa kĂ«rkuar ndonjĂ« ndryshim nĂ« kod. Ndryshe nga Firejail, Island nuk kĂ«rkon privilegje root ose leje tĂ« veçanta.
  • Google ka prezantuar Wasefire, njĂ« set mjetesh tĂ« bazuar nĂ« Rust pĂ«r zhvillimin e firmware-it tĂ« sigurt. Ideja kryesore Ă«shtĂ« tĂ« ekzekutohen trajtues (aplete) tĂ« veçantĂ« dhe tĂ« izoluar mbi mjedisin (platformĂ«n) e firmware-it themelor. Zhvillimi i firmware-it Ă«shtĂ« agnostik ndaj gjuhĂ«s - komponentĂ«t e firmware-it mund tĂ« dorĂ«zohen si WebAssembly me zgjerime WASI (WebAssembly System Interface) dhe tĂ« ekzekutohen duke pĂ«rdorur Wasmtime.
  • ËshtĂ« publikuar Patina 18, njĂ« firmware UEFI i shkruar nĂ« Rust. Patina ofron njĂ« zĂ«vendĂ«sim pĂ«r komponentĂ«t kryesorĂ« tĂ« firmware UEFI dhe mund tĂ« pĂ«rdoret pĂ«r tĂ« migruar gradualisht firmware-in ekzistues tĂ« shkruar nĂ« C nĂ« Rust.
  • Projekti Brimstone po zhvillon njĂ« motor tĂ« ri JavaScript, tĂ« shkruar nga e para nĂ« Rust. Forma e tij aktuale mbĂ«shtet tashmĂ« mbi 97% tĂ« veçorive tĂ« ECMAScript 2026. Makina virtuale pĂ«r ekzekutimin e kodit tĂ« bajtit bazohet nĂ« arkitekturĂ«n e motorit V8.
  • Projekti Catten zhvillon njĂ« bĂ«rthamĂ« pĂ«r sistemin operativ eksperimental CharlotteOS, tĂ« shkruar nĂ« Rust. BĂ«rthama mbĂ«shtet kontrollin e aksesit tĂ« bazuar nĂ« aftĂ«si (i ngjashĂ«m me Fuchsia) dhe pĂ«rdor njĂ« hierarki burimesh tĂ« shpĂ«rndara tĂ« ngjashme me Planin 9, me shtigje skedarĂ«sh tĂ« adresuara nga URI-tĂ«.
  • ËshtĂ« publikuar shell-i interaktiv Fish 4.2.0 (njĂ« shell interaktiv i lehtĂ« pĂ«r t’u pĂ«rdorur). Dega 4.x Ă«shtĂ« e njohur pĂ«r migrimin e plotĂ« tĂ« bazĂ«s sĂ« kodit nga C++ nĂ« Rust.
  • Soundflare ka bĂ«rĂ« qĂ« biblioteka tokio-quiche Rust tĂ« jetĂ« me burim tĂ« hapur pĂ«r tĂ« integruar mbĂ«shtetjen pĂ«r QUIC dhe HTTP/3 nĂ« aplikacione asinkrone bazuar nĂ« framework-un Tokyo.
  • Projekti Tor ka publikuar Arti 1.7 dhe 1.8, njĂ« implementim tĂ« Rust tĂ« zinxhirit tĂ« mjeteve Tor. Sapo baza e kodit tĂ« Arti tĂ« arrijĂ« njĂ« nivel tĂ« aftĂ« pĂ«r tĂ« zĂ«vendĂ«suar plotĂ«sisht implementimin e C, zhvilluesit e Tor synojnĂ« ta bĂ«jnĂ« Arti implementimin kryesor tĂ« Tor dhe gradualisht ta heqin qafe mirĂ«mbajtjen e implementimit tĂ« C.

    Versioni i ri stabilizon zbatimin e zbulimit tĂ« kufizuar pĂ«r shĂ«rbimet onion duke pĂ«rdorur autorizimin e klientit ("zbulim i kufizuar"). PĂ«rveç proxy-ve SOCKS, Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r proxy-t HTTP duke pĂ«rdorur metodĂ«n CONNECT. JanĂ« zbatuar afate kohore adaptive nĂ« varĂ«si tĂ« ngarkesĂ«s. ËshtĂ« shtuar mbĂ«shtetje eksperimentale pĂ«r tokio-console. Zhvillimi i funksionalitetit pĂ«r reletĂ« dhe serverat DrejtoritĂ« (Autoriteti i DrejtorisĂ«). U shtua komanda "arti hsc ctor-migrate" pĂ«r migrimin e çelĂ«save nga klienti C nĂ« ruajtjen e çelĂ«save Arti. U shtuan cilĂ«sime pĂ«r menaxhimin e nisjes sĂ« shĂ«rbimeve onion.

  • ËshtĂ« publikuar RustDB, njĂ« sistem menaxhimi bazash tĂ« dhĂ«nash (DBMS) i frymĂ«zuar nga PostgreSQL dhe i shkruar nĂ« Rust. Ai mbĂ«shtet operacionet bazĂ« SQL (CREATE/DROP TABLE/VIEW, INSERT, SELECT, UPDATE, DELETE, SHOW TABLES, EXPLAIN, VACUUM), transaksione, MVCC, WAL (Write-Ahead Log), indekse dhe lidhje nĂ«pĂ«rmjet njĂ« protokolli tĂ« pajtueshĂ«m me PostgreSQL. RustDB u zhvillua duke pĂ«rdorur inteligjencĂ«n artificiale.

Burimi: opennet.ru

Bleni njĂ« host tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, serverĂ« VPS VDS đŸ”„ Bleni hosting tĂ« besueshĂ«m tĂ« faqeve tĂ« internetit me mbrojtje DDoS, servera VPS VDS | ProHoster