Programlaşdırma dili Rust 1.92 versiyasının buraxılışı elan edildi. Bu layihə Mozilla tərəfindən başlanmışdır, lakin hazırda müstəqil qeyri-kommersiya təsisatı olan Rust Foundation tərəfindən inkişaf etdirilir. Dili etibarlı yaddaş istifadəsinə fokuslanmışdır və gömülmə toplayıcısı və runtime olmadan yüksək paralel işlərin yerinə yetirilməsi üçün vasitələr təqdim edir (runtime yalnız standart kitabxananın əsas başlatması və saxlanılması ilə məhdudlaşır).
Rust-da yaddaşın idarə olunma metodları inkişafçını göstəricilərlə manipulyasiya zamanı səhvlərdən azad edir və aşağı səviyyəli yaddaşla işin yaratdığı problemlərdən, məsələn, azad edilmiş yaddaş sahəsinə müraciət etmə, sıfır göstəricilərin de-referensiallaşdırılması, buferdən kənara çıxma və s. qoruyur. Kitabxanaların yayılması, konteyner yığımı və layihənin asılılıqlarını idarə etmək üçün Cargo paket meneceri inkişaf etdirilir. Kitabxanaların yerləşdirilməsi üçün crates.io anbarı dəstəklənir.
Rust-da yaddaşın təhlükəsiz işlənməsi, kompilyasiya zamanı istinadların yoxlanılması, obyektlərin sahibliliyinin izlənməsi, obyektlərin zamanını (görünmə sahəsi) diqqətə almaq və kodun icrası zamanı yaddaşa düzgün girişin qiymətləndirilməsi ilə təmin edilir. Rust, eyni zamanda tam ədəd aşmalarından qorunma vasitələri təqdim edir, dəyişənlərin istifadəsi üçün mütləq ilkin olaraq nəzərdə tutulmasını tələb edir, standart kitabxanada səhvləri daha yaxşı işləyir, dəyişməz (immutable) istinadların və dəyişənlərin varsayılan olaraq tətbiq olunduğu konsepsiyanı istifadə edir, mantıqlı səhvləri minimuma endirmək üçün güclü statik tip təsdiqi təklif edir.
Əsas yeniliklər:
- «never» tipi, «!» simvolu ilə təsvir edilərək, nəticə qaytarmayan hesablama proseslərini müəyyənləşdirir (məsələn, «exits» funksiyası, «panic!» makrosu və sonsuz dövrlər heç vaxt idarəni qaytarmaz). Yeni versiyada Lint yoxlamaları «never_type_fallback_flowing_into_unsafe» və «dependency_on_unit_never_type_fallback» standart olaraq xəbərdarlıq verməkdən, kompilyasiya xətası yaratmağa keçib. Bu yoxlamalar, «never» tipinin istifadə edildiyi koddakı problemləri aşkar etdikdə işləyir.
İlk ehtimallara görə, belə problemlər təxminən 500 crate-paketində mövcuddur. Lint yoxlamalarının aktivləşdirilməsi, «never» tipinin stabilizasiya olunmasına hazırlıq görməyə imkan verəcək, bu hələ experimental xüsusiyyətlərdən biri hesab edilir. Lint yoxlamaları yalnız paketlərin birbaşa yığılması zamanı aktivdir və asılılıqların yığılması zamanı görünmür. Yoxlamaları «#[allow]» atributu ilə də deaktiv etmək olar.
- Lint yoxlaması «unused_must_use»-nun davranışı dəyişdirilib, bu yoxlama, əgər funksiya və ya qaytarılan tip «#[must_use]» atributu ilə işarələnibsə, qaytarılan dəyərin göz ardı olunması zamanı aktivləşir. Yeni versiyada Result və ControlFlow tipləri ilə bağlı qaytarılan dəyərlərin göz ardı olunması ilə bağlı xəbərdarlıq verilməsi dayandırılıb, harada ki, xəta vəziyyəti tipin qiyməti olmadan müəyyən edilir («!» və ya «Infallible»). Məsələn, «fn can_never_fail() -> Result<(), Infallible> {…}».
- -Cpanic=abort flag-ı üçün davranış dəyişdirilib, bu flag aktiv olduqda, geri iz (backtrace) üçün standart olaraq unwind-cədvəllərinin yaradılması təmin edilir. Köhnə davranışı bərpa etmək üçün «-Cforce-unwind-tables=no» seçimi mövcuddur.
- «#[macro_export]» atributunun arqumentlərinin yoxlaması daha da sərtləşdirilib. Qadağan olunmuş atributlar göstərildikdə, artıq xəbərdarlıq deyil, xəta verilir. «#[macro_export]» ilə bağlı problemlər yalnız crate-paketinin birbaşa yığılması zamanı yoxlanılmayacaq, həmçinin asılılıqların yığılması zamanı da yoxlanılacaq.
- Safe kodda union tiplərindəki sahələr üçün raw-işarələr («&raw [mut | const]») əldə etməyə icazə verilir.
- Məsələn, mips64el-unknown-linux-muslabi64 hədəf platforması üçün dinamik bağlanma dəstəyi həyata keçirilib.
- Dış alətlər üçün minimal dəstəklənən LLVM versiyası LLVM 20 xəttinə qaldırılıb.
- Yeni API stabil vəziyyətə keçirilib, o cümlədən stabil edilmiş metodlar və strukturlar:
- 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
- proc_macro::Literal üçün Extend<proc_macro::TokenStream> tətbiqi
- proc_macro::Punct üçün Extend<proc_macro::TokenStream> tətbiqi
- proc_macro::Ident üçün Extend<proc_macro::TokenStream> tətbiqi
- "const" işarəsi funksiyalarda tətbiq edilmişdir:
- <[_]>::rotate_left
- <[_]>::rotate_right
- Cargo paket menecerində, ilk sorğunun uğursuzluq vəziyyətində «git fetch» əməliyyatını təkrarlamaq imkanı təmin edilir. Ghostty terminal emulatoru ilə inteqrasiya üçün komponentlər əlavə edilib. İllik kitabçaya, tikinti prosesinin optimallaşdırılması ilə bağlı yeni bir bölüm əlavə edilib.
Daha bir qeyd olaraq, Rust ilə əlaqəli yeni elan edilmiş layihələr və hadisələri vurğulamaq olar:
- Ferrocene şirkəti, Rust standart əsas kitabxanasından çağırışlar alt müstəvisini əhatə edən libcore kitabxanası üçün IEC 61508 (SIL 2) sertifikatını keçdiyini elan edib. Sertifikasiya, kitabxananın kritik sənaye sistemləri tələblərinə uyğunluğunu təsdiqləyir. Ferrocene, kritik sistemlər (Safety-Critical Systems) üçün Rust dilində tətbiq inkişaf etmək üçün alətlərin yaradılması ilə tanınır və Rust dilinin standart spesifikasiyasını inkişaf etdirdiyi FLS (Ferrocene Language Specification) spesifikasiyasını saxlayır.
- Reaktiv proqramlaşdırma modelini istifadə edərək istifadəçi interfeysləri yaratmaq üçün Iced 0.14 kitabxanasının buraxılışı elan edilib. Iced, Elm interfeysi yaratma dili ilə tanış olan inkişaf etdiricilər üçün tanış bir arxitektura təqdim edir. Asinxron işləyicilər yaratma imkanı ilə bir sıra widgetlər təqdim edilir və interfeys elementlərinin yerləşdirilməsi pəncərə və ekran ölçüsünə görə uyğunlaşdırılır. Vulkan, Metal və DX12 dəstəkləyən bir neçə render mühərriki təklif olunur. Iced istifadə edən böyük layihələr arasında COSMIC masaüstü mühitini qeyd etmək mümkündür.
Yeni versiyada «table», «grid», «sensor», «float» və «pin» widgetləri əlavə edilib, həmçinin Markdown ilə işləmə imkanları genişləndirilib. Reaktiv render rejimi; ehtiyaca görə yaradılan sürüşdürmə zolaqları; animasiya ilə işləmək üçün API; giriş metodlarının dəstəyi; headless rejimi; tətbiqin dayandırılmadan dəyişikliklər edilməsinə (hot reloading); şəkillərin kodunu paralelləşdirmək; performansın sınağı və profilləşdirməsi üçün alətlər həyata keçirilmişdir.
- Ribir layihəsi, müxtəlif platformalarda (Linux, Windows, macOS, plan daxilində Android və iOS) qrafik tətbiqetmələrin yaradılması üçün bir orta kod bazası istifadə etməyə imkan verən kitabxananı inkişaf etdirir. Rust makrolarına əsaslanan deklarativ interfeys qurma dili, 20-dən çox widget, dizayn temaları və wgpu əsasında render mövcuddur.
- Islands adlanan yeni bir proqram, tətbiqlərin izolyasiyalı işə salınması üçün nəzərdə tutulub. Sandbox-izolyasiyası üçün Landlock mexanizmindən istifadə olunur. Island, mövcud icra edilə bilən faylların izolyasiyası üçün Landlock üzrə qaydalar yaratmağa və tətbiq etməyə imkan verir, kodda dəyişiklik etməyə ehtiyac olmadan. Firejail-dan fərqli olaraq, Island proqramı root hüquqları və xüsusi səlahiyyətlər tələb etmir.
- Google, təhlükəsiz firmware-lərin inkişafı üçün Rust dilində yazılmış Wasefire alətini təqdim etdi. Əsas fikir, firmware (platforma) əsas mühitinin üzərində ayrı izolyasiyalı işləyicilərin (appletlərin) fəaliyyətə keçirilməsidir. Firmware-in inkişafı proqramlaşdırma dillərinə bağlı deyil - firmware komponentləri WebAssembly formatında WASI (WebAssembly System Interface) uzantıları ilə təqdim edilə bilər və Wasmtime vasitəsilə icra edilə bilər.
- Rust dilində yazılmış Patina 18 UEFI-firmware buraxılışı yayımlandı. Patina, UEFI firmware-nin əsas komponentlərinə alternativ təqdim edir və C dilində yazılmış mövcud firmware-ləri Rust dilinə mərhələli keçid üçün istifadə edilə bilər.
- Brimstone layihəsi Rust dilində sıfırdan yazılmış yeni bir JavaScript mühərrikini inkişaf etdirir. Hal-hazırda, ECMAScript 2026-nın imkanlarının 97%-dən çoxu dəstəklənir. Bayt kodunu icra edən virtual maşın, V8 mühərrikinin memarlığına nəzərə alınaraq yaradılmışdır.
- Catten layihəsi Rust dilində yazılmış eksperimental CharlotteOS əməliyyat sisteminin nüvəsini inkişaf etdirir. Nüvə, Fuchsia ilə analoji olaraq, «capability» əsaslı giriş idarəetməsini dəstəkləyir və Plan 9-dan ilhamlanan resursların paylanmış iyerarxiyasını URI ilə fayl yolları üzərində ünvanlayır.
- Fish 4.2.0 (dost canlısı interaktiv shell) interaktiv komanda xətti dəstəyi buraxılışı yayımlandı. 4.x versiyası, kod bazasının tamamilə C++ dilindən Rust dilinə köçürülməsi ilə diqqət çəkir.
- Cloudflare, Tokio çərçivəsində asinxron işləyən tətbiqlərdə QUIC və HTTP/3 protokollarının dəstəklənməsi üçün Rust kitabxanası tokio-quiche kodunu açdı.
- Tor layihəsi, Rust dilində yazılmış Tor alətinin Arti 1.7 və 1.8 buraxılışlarını yayımladı. Arti kodu, C dilindəki variantı tamamilə əvəz edə biləcək səviyyəyə çatdıqda, Tor inkişafçıları Arti-yə Tor-un əsas implementasiyası statusunu vermək və C dilində yazılmış versiyaya dəstəyini tədricən dayandırmağı planlaşdırırlar.
Yeni versiyada müştəri təsdiqi ilə məhdudlaşdırılmış onion-servislərin tətbiqi stabil hala gətirildi («restricted-discovery»). SOCKS proxy-nə əlavə olaraq, CONNECT metodunu istifadə edən HTTP-proxy dəstəyi əlavə edildi. Yükə bağlı olaraq zaman aşımı tənzimlənməsi həyata keçirildi. Tokio-console üçün eksperimental dəstək əlavə edildi. Relaylər üçün funksionallığın inkişafı davam etdirildi. serverləri üçün mükəmməl seçim edir. Kataloq (Directory Authority). Si-klientdən açarları Arti açar anbarına köçürmək üçün "arti hsc ctor-migrate" komandası əlavə edildi. Onion xidmətlərinin işini idarə etmək üçün parametrlər əlavə edildi.
- Rust dilində PostgreSQL-dən ilhamlanaraq yaradılmış RustDB verilənlər bazası yayımlandı. Əsas SQL əməliyyatları (CREATE/DROP TABLE/VIEW, INSERT, SELECT, UPDATE, DELETE, SHOW TABLES, EXPLAIN, VACUUM), tranzaksiyalar, MVCC, WAL (Write-Ahead Log), indekslər, PostgreSQL uyğun protokol ilə qoşulma dəstəklənir. RustDB yazılarkən AI istifadə olunub.
Mənbə: opennet.ru
