ĂshtĂ« publikuar versioni i ri i gjuhĂ«s programuese Rust 1.94, e krijuar fillimisht nga projekti Mozilla, por qĂ« tani zhvillohet nĂ«n kujdesin e organizatĂ«s sĂ« pavarur jofitimprurĂ«se Rust Foundation. Gjuha Ă«shtĂ« e pĂ«rqendruar te puna e sigurt me memorien dhe ofron mjete pĂ«r arritjen e paralelizmit tĂ« lartĂ« nĂ« ekzekutimin e detyrave, pa pĂ«rdorur garbage collector dhe runtime (runtime kufizohet te inicializimi bazĂ« dhe mirĂ«mbajtja e bibliotekĂ«s standarde).
Metodat e punës me memorie në Rust janë të orientuara për të eliminuar gabimet gjatë manipulimit të treguesve dhe për të mbrojtur nga problemet që lindin nga puna me nivel të ulët me memorinë, siç janë akseset në zona memorien pas lirimit të saj, dereferencimi i treguesve null, tejkalimi i kufijve të bufeve etj. Për shpërndarjen e bibliotekave, sigurinë e ndërtimit dhe menaxhimin e varësive, projekti zhvillohet me ndihmën e menaxherit të paketave Cargo. Mbështetet një depo për bibliotekat, 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:
- NĂ« tipin slice Ă«shtĂ« shtuar metoda array_windows, e cila krijon njĂ« iterator pĂ«r kalimin mbi prerje (slice) me âdritareâ tĂ« madhĂ«sisĂ« fikse qĂ« zhvendosen nga njĂ« element nĂ« çdo hap. Ndryshe nga metoda windows e disponueshme mĂ« parĂ«, metoda array_windows punon me madhĂ«si konstante tĂ« dritares dhe nĂ« çdo iterim kthen njĂ« referencĂ« te njĂ« array me madhĂ«si fikse (&[T; N]) nĂ« vend tĂ« njĂ« slice me madhĂ«si tĂ« papĂ«rcaktuar (&[T]). MeqĂ« madhĂ«sia e array Ă«shtĂ« e njohur paraprakisht nga kompileri, pĂ«r tĂ« rritur performancĂ«n mund tĂ« shmanget kontrolli i kufijve tĂ« array nĂ« çdo fazĂ« tĂ« iterimit. let slice = [0, 1, 2, 3]; let mut iter = slice.array_windows(); assert_eq!(iter.next().unwrap(), &[0, 1]); assert_eq!(iter.next().unwrap(), &[1, 2]); assert_eq!(iter.next().unwrap(), &[2, 3]); assert!(iter.next().is_none());
- Në skedarët e konfigurimit të menaxherit të paketave Cargo (.cargo/config.toml) është zbatuar direktiva «include», e cila lejon futjen në vend të përmbajtjes së skedarëve të tjerë. include = [ «frodo.toml», «samwise.toml», ] include = [ { path = «required.toml» }, { path = «optional.toml», optional = true }, ]
- Në skedarët me manifestet dhe në skedarët e konfigurimit është shtuar mbështetja për versionin e ri të gjuhës së markup-it TOML 1.1, ku është shtuar mbështetja për tabela inline shumëlinjëshe, sekuencat escape «\xHH» për futjen e paraqitjes heksadecimale të bajteve dhe «\e» për zëvendësimin e «\u001B», si edhe mundësia për të lënë presjen pas elementit të fundit dhe për të mos specifikuar sekondat në vlerat e kohës. serde = { version = «1.0», features = [«derive»] } tani mund të zëvendësohet me serde = { version = «1.0», features = [«derive»], }
- Një grup i ri API u kalua në kategorinë e stabilizuar, përfshirë stabilizimin e metodave dhe implementimeve të trait-ëve:
- ::array_windows
- ::element_offset
- LazyCell::get
- LazyCell::get_mut
- LazyCell::force_mut
- LazyLock::get
- LazyLock::get_mut
- LazyLock::force_mut
- impl TryFrom for usize
- std::iter::Peekable::next_if_map
- std::iter::Peekable::next_if_map_mut
- Funksione të integruara për instruksionet x86 avx512fp16
- Funksione të integruara për instruksionet AArch64 NEON fp16
- f32::consts::EULER_GAMMA
- f64::consts::EULER_GAMMA
- f32::consts::GOLDEN_RATIO
- f64::consts::GOLDEN_RATIO
- Priznaku «const» aplicohet në funksione:
- f32::mul_add
- f64::mul_add
- Platforma riscv64im-unknown-none-elf është kaluar në nivelin e tretë të mbështetjes. Niveli i tretë përfshin mbështetje bazë, por pa testim të automatizuar, publikim të build-eve zyrtare dhe verifikim të mundësisë së kompilimit të kodit.
Gjithashtu mund të theksohet projektet dhe ngjarjet e shpallura së fundmi të lidhura me Rust:
- Ayrton Muñoz, i cili më parë realizoi mbështetjen për platformën Sony PlayStation 1 në kompajlerin Rust dhe u mor me portimin e FreeBSD në kompjuterë me çipa Apple Silicon, ka zbatuar për FreeBSD mundësinë e krijimit të komponentëve të kernelit dhe driverëve të pajisjeve në gjuhën Rust. Për testim është propozuar një grup KPI wrappers (Kernel Programming Interface), që lejon përdorimin e kodit Rust në kernelin e FreeBSD, si dhe janë krijuar, duke përdorur këto wrappers, driveri i zërit virtio (virtio_snd), driveri HID DockChannel për tastierën në M2 MacBook dhe disa driverë të nivelit të ulët për nënsistemet e kompjuterëve Mac me çipa Apple Silicon.
Theksohet se puna pĂ«r Rust wrappers po zhvillohet qĂ« nga fundi i vitit 2024. NĂ« kĂ«to wrappers deri tani Ă«shtĂ« zbatuar vetĂ«m njĂ« pjesĂ« e C-KPI dhe ato konsiderohen ende jo stabile, por me kalimin e kohĂ«s niveli i stabilitetit pritet tĂ« afrohet me atĂ« tĂ« ndĂ«rfaqes analoge pĂ«r gjuhĂ«n C. Driveri virtio_snd, i propozuar si shembull, Ă«shtĂ« i pĂ«rshtatshĂ«m pĂ«r riprodhimin e muzikĂ«s nĂ« QEMU. Supozohet se nĂ« vitin 2026 Rust wrappers do tĂ« jenĂ« stabilizuar mjaftueshĂ«m qĂ« zhvilluesit e interesuar tĂ« mund tĂ« nisin tâi pĂ«rdorin pĂ«r shkrimin e kodit.
- Benny Siegert, i cili merr pjesë në zhvillimin e NetBSD, u përpoq të argumentojë arsyet pse mbështetja për gjuhën Rust nuk do të shfaqet në kernelin e NetBSD: NetBSD mbështet arkitektura për të cilat Rust nuk është i disponueshëm; mirëmbajtja e toolchain-it Rust që ndodhet në pkgsrc kërkon përpjekje të mëdha dhe mbështetet vetëm nga disa zhvillues; mbështetja e Rust në kernel kërkon përfshirjen e kompajlerit Rust në sistemin bazë; gjatë bootstrap-it të Rust në NetBSD përdoret versioni i mëparshëm i paketës binare, gjë e papranueshme për distribucione të vetëqëndrueshme që shpërndahen në kod burimor; ciklet e publikimit të Rust nuk përputhen me ciklin e zhvillimit të NetBSD dhe me mbështetjen e degëve të mëparshme (për shembull, dega NetBSD 9, e publikuar në vitin 2020, vazhdon të mbështetet, dhe në këto kushte do të nevojitej shpërndarja dhe mirëmbajtja e një kompajleri Rust gjashtëvjeçar).
- ĂshtĂ« publikuar versioni 0.5 i Turso, njĂ« DBMS e integrueshme nĂ« aplikacione, e shkruar nĂ« Rust dhe e pĂ«rputhshme me SQLite nĂ« nivelin e dialektit SQL, formatit tĂ« skedarĂ«ve tĂ« bazĂ«s sĂ« tĂ« dhĂ«nave dhe C API. NdĂ«r veçoritĂ« e avancuara veçohen mekanizmi CDC (Change data capture) pĂ«r gjurmimin nĂ« kohĂ« reale tĂ« ndryshimeve nĂ« bazĂ«n e tĂ« dhĂ«nave, pĂ«rdorimi i io_uring pĂ«r hyrje/dalje asinkrone nĂ« Linux, mbĂ«shtetja pĂ«r kĂ«rkim vektorial, prania e shprehjes ALTER pĂ«r ndryshimin e skemĂ«s sĂ« bazĂ«s sĂ« tĂ« dhĂ«nave, mundĂ«sia e enkriptimit tĂ« tĂ« dhĂ«nave nĂ« bazĂ«n e tĂ« dhĂ«nave, mĂ«nyra e llogaritjeve inkrementale dhe konstrukti «BEGIN CONCURRENT».
- Projekt për ofrimin e mundësisë së përdorimit të bibliotekës standarde Rust në programe që ekzekutohen në anën e GPU-së.
- Emuko â emulator RISC-V, i shkruar nĂ« Rust, qĂ« mund tĂ« ngarkojĂ« Linux, mbĂ«shtet JIT-kompilimin dhe mund tĂ« ruajĂ« e rikthejĂ« snapshot-et e gjendjes.
- RustConn (flatpak) â ndĂ«rfaqe grafike pĂ«r menaxhimin e lidhjeve tĂ« jashtme tĂ« rrjetit me hoste tĂ« tjerĂ«, me mbĂ«shtetje pĂ«r SSH, RDP, VNC, SPICE, Telnet, Serial, Kubernetes, Zero Trust dhe SFTP. Kodi Ă«shtĂ« shkruar nĂ« Rust duke pĂ«rdorur GTK4 dhe Wayland.
- ĂshtĂ« prezantuar dega e re e projektit zlib-rs 0.6, e cilĂ«suar si versioni i parĂ« stabil, plotĂ«sisht i pĂ«rputhshĂ«m me zlib C API dhe i pĂ«rshtatshĂ«m pĂ«r zĂ«vendĂ«simin transparent tĂ« zlib. Projekti synon krijimin e njĂ« alternative tĂ« sigurt pĂ«r bibliotekĂ«n e kompresimit tĂ« tĂ« dhĂ«nave zlib. Zhvillimi po ecĂ«n duke pasur parasysh projektin zlib-ng, i cili zhvillon njĂ« variant tĂ« zlib me performancĂ« tĂ« lartĂ«.
- ĂshtĂ« prezantuar projekti vcad, qĂ« zhvillon njĂ« sistem parametrik CAD, tĂ« shkruar nĂ« Rust dhe tĂ« integrueshĂ«m me AI-agentĂ« pĂ«rmes protokollit MCP. MbĂ«shteten modelimi 3D, simulimi, puna me skica 2D, montimi me komponentĂ«, importi nĂ« formatin STEP dhe eksporti nĂ« formatet STL/GLB/STEP/DXF.
- ĂshtĂ« publikuar njĂ« sistem i njohjes sĂ« tĂ« folurit, i shkruar nĂ« Rust dhe qĂ« pĂ«rdor modelin AI Mistral Voxtral Mini 4B Realtime si edhe framework-un e machine learning Burn. Projekti Ă«shtĂ« i orientuar drejt njohjes sĂ« tĂ« folurit nĂ« kohĂ« reale pĂ«r krijimin e transkriptimit gjatĂ« transmetimit nĂ« rrjedhĂ«.
- ĂshtĂ« publikuar versioni 0.22 i paketĂ«s sĂ« mjeteve c2rust, e destinuar pĂ«r pĂ«rkthimin e kodit C (C99) nĂ« njĂ« paraqitje unsafe nĂ« Rust, tĂ« afĂ«rt nĂ« strukturĂ« me kodin burimor nĂ« C. Korniza funksionale e pĂ«rftuar mund tĂ« pĂ«rdoret mĂ« pas pĂ«r kalim gradual nĂ« Rust idiomatik dhe pĂ«r eliminimin e blloqeve unsafe.
Burimi: opennet.ru
