Zhvilluesit e rrjetit anonim Tor formuan versionin e parë stabil (1.0.0) të projektit Arti, që zhvillon klientin Tor, i shkruar në gjuhën Rust. Ky version është shënuar si i përshtatshëm për përdorim nga përdoruesit e zakonshëm dhe ofron të njëjtin nivel të privatësisë, përdorshmërisë dhe stabilitetit si implementimi kryesor në gjuhën C. gjithashtu është stabilizuar API-ja e propozuar për përdorimin e funksionaliteteve të Arti në aplikacione të tjera. Kodi shpërndahen nën licencat Apache 2.0 dhe MIT.
Ndryshe nga implementimi në C, i cili fillimisht ishte projektuar si SOCKS-proxy dhe më pas përshtatur për nevoja të tjera, Arti zhvillohet fillimisht si një bibliotekë modulare të integruar, që do të mund të përdoret nga aplikacione të ndryshme. Për më tepër, gjatë zhvillimit të projektit të ri, merret parasysh e gjithë përvoja e mëparshme e zhvillimit të Tor, duke kontribuar në shmangien e problemeve të njohura arkitektonike, duke e bërë projektin më modular dhe efektiv.
Arsyetimi pas ri-shkrimit të Tor në Rust ishte dëshira për të arritur një nivel më të lartë të sigurisë së kodit duke përdorur një gjuhë që siguron një menaxhim të sigurt të memories. Sipas vlerësimeve të zhvilluesve të Tor, të paktën gjysma e të gjitha vulnerabiliteteve të ndjekura nga projekti do të eliminohen në implementimin në Rust, nëse në kod nuk përdoren blloqet "unsafe". Rust gjithashtu do të mundësojë një shpejtësi më të lartë zhvillimi se sa përdorimi i C, për shkak të shprehshmërisë së gjuhës dhe garantive strikte, duke parandaluar shpenzimin e kohës në verifikime të dyfishta dhe shkruajtjen e kodit të panevojshëm.
Pas përfundimit të zhvillimit të versionit të parë, përdorimi i gjuhës Rust e justifikoi veten. Për shembull, është vënë re se në çdo fazë në kodin Rust u bënë më pak gabime se gjatë një zhvillimi të krahasueshëm në C - gabimet e hasura gjatë zhvillimit ishin kryesisht të lidhura me logjikën dhe semantikën. Kërkesa e tepërt e kompilatorit rustc, e cila është vënë re nga disa si një disavantazh, në fakt doli të ishte një bekim, sepse nëse kodi kompilohet dhe kalon testet, rritet ndjeshëm mundësia e saktësisë së tij.
Gjatë punës mbi variantin e ri, është konfirmuar gjithashtu rritja e shpejtësisë së zhvillimit, e cila është e lidhur jo vetëm me faktin se funksionaliteti u ribë të bazuar në modelin ekzistues, por edhe me semantikën më të shprehshme të Rust, bibliotekat funksionale të lehta për t'u përdorur dhe shfrytëzimin e mundësive të Rust për të siguruar sigurinë e kodit. Një nga disavantazhet është madhësia e madhe e ndërtimeve përfundimtare - pasi biblioteka standarde e Rust nuk ofrohet në sisteme për defekt, ajo duhet të përfshihet në paketat e ofruara për shkarkim.
Versioni 1.0 është përqendruar kryesisht në punën bazë si klient. Në versionin 1.1, planifikohet të realizohet mbështetje për transportin e integruar dhe bridge për të anashkaluar bllokimet. Në versionin 1.2, pritet mbështetje për shërbimet onion dhe funksionalitete të lidhura, si protokoli i menaxhimit të ngarkesës (RTT Congestion Control) dhe mjetet mbrojtëse nga sulmet DDoS. Arrihja e paritetit me klientin në gjuhën C është e planifikuar për degën 2.0, e cila gjithashtu do të ofrojë lidhje për përdorimin e Arti në kodin në gjuhë të ndryshme programimi.
Gjatë viteve të ardhshme, puna do të drejtohet drejt realizimit të funksionaliteteve të nevojshme për funksionimin e relieeve dhe servera direktorive. Kur kodi në Rust të arrijë nivelin që mund të zëvendësojë plotësisht variantin në C, zhvilluesit kanë në plan t'i japin Arti statusin e realizimit kryesor të Tor dhe të ndalin mbështetje për implementimin në C. Mbështetja për versionin në gjuhën C do të ndërpritet gradualisht me ofrimin e mundësisë për migrim të qetë.
Burimi: opennet.ru
