Lëshimi i parë i qëndrueshëm i Arti, zbatimi zyrtar i Tor në Rust

Zhvilluesit e rrjetit anonim Tor kanë krijuar versionin e parë të qëndrueshëm (1.0.0) të projektit Arti, i cili zhvillon një klient Tor të shkruar në Rust. Lëshimi 1.0 është shënuar si i përshtatshëm për përdorim nga përdoruesit e përgjithshëm dhe siguron të njëjtin nivel privatësie, përdorshmërie dhe stabiliteti si implementimi kryesor C. API-ja e ofruar për përdorimin e funksionalitetit Arti në aplikacione të tjera është stabilizuar gjithashtu. Kodi shpërndahet nën licencat Apache 2.0 dhe MIT.

Ndryshe nga implementimi C, i cili fillimisht u projektua si një proxy SOCKS dhe më pas iu përshtat nevojave të tjera, Arti fillimisht është zhvilluar në formën e një biblioteke modulare të ngulitur që mund të përdoret nga aplikacione të ndryshme. Përveç kësaj, gjatë zhvillimit të një projekti të ri, merret parasysh e gjithë përvoja e kaluar e zhvillimit të Tor, e cila shmang problemet e njohura arkitekturore dhe e bën projektin më modular dhe efikas.

Arsyeja e rishkrimit 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ë të sigurt për memorie. Sipas zhvilluesve të Tor, të paktën gjysma e të gjitha dobësive të monitoruara nga projekti do të eliminohen në një zbatim Rust nëse kodi nuk përdor blloqe "të pasigurta". Rust gjithashtu do të bëjë të mundur arritjen e shpejtësive më të shpejta të zhvillimit sesa përdorimi i C, për shkak të ekspresivitetit të gjuhës dhe garancive strikte që ju lejojnë të shmangni humbjen e kohës për kontrollin e dyfishtë dhe shkrimin e kodit të panevojshëm.

Bazuar në rezultatet e zhvillimit të versionit të parë, përdorimi i gjuhës Rust justifikoi veten. Për shembull, u vu re se në çdo fazë, më pak gabime u bënë në kodin Rust sesa në zhvillimin e krahasueshëm në C - gabimet që u shfaqën gjatë procesit të zhvillimit ishin kryesisht të lidhura me logjikën dhe semantikën. Përpiluesi tepër i kërkuar rustc, i vërejtur nga disa si një disavantazh, në të vërtetë doli të ishte një bekim, pasi nëse kodi përpilon dhe kalon testet, gjasat për korrektësinë e tij rriten ndjeshëm.

Puna në variantin e ri konfirmoi gjithashtu një rritje të shpejtësisë së zhvillimit, e cila është për shkak jo vetëm të faktit se funksionaliteti u rikrijua bazuar në një shabllon ekzistues, por edhe për semantikën më ekspresive të Rust, bibliotekat e funksioneve të përshtatshme dhe përdorimin e sigurisë së kodit të Rust. aftësitë. Një nga disavantazhet është madhësia e madhe e asambleve që rezultojnë - meqenëse biblioteka standarde Rust nuk ofrohet në sisteme si parazgjedhje, ajo duhet të përfshihet në paketat e ofruara për shkarkim.

Lëshimi 1.0 fokusohet kryesisht në punën bazë në rolin e klientit. Në versionin 1.1 është planifikuar të zbatohet mbështetje për transportin plug-in dhe urat për të anashkaluar bllokimin. Versioni 1.2 pritet të mbështesë shërbimet e qepëve dhe veçoritë e lidhura me to, të tilla si protokolli i kontrollit të mbingarkesës (RTT Congestion Control) dhe mbrojtja kundër sulmeve DDoS. Arritja e barazisë me klientin C është planifikuar për degën 2.0, e cila gjithashtu do të ofrojë lidhje për përdorimin e Artit në kod në gjuhë të ndryshme programimi.

Gjatë viteve të ardhshme, puna do të fokusohet në zbatimin e funksionalitetit të nevojshëm për të ekzekutuar reletë dhe serverët e direktorive. Kur kodi Rust arrin një nivel që mund të zëvendësojë plotësisht versionin C, zhvilluesit synojnë t'i japin Artit statusin e zbatimit kryesor të Tor dhe të ndalojnë mirëmbajtjen e zbatimit C. Versioni C do të hiqet gradualisht për të lejuar një migrim të qetë.

Burimi: opennet.ru

Shto një koment