Projektin rars e prezanton një implementim të lirë të mjeteve për formatin RAR, të shkruar në gjuhën Rust, që mbështet jo vetëm dekompresimin, por edhe krijimin e arkivave RAR. Mjeti mbështet formatet e hershme RAR 1.3/1.4 me nënshkrimin «RE~^», si dhe versionin më të fundit RAR 7. Operacionet e avancuara si ndarja në vëllime, mbrojtja me fjalëkalim, enkriptimi i kokave, prishja e komenteve, filtrat RARVM, indekset për hapjen e shpejtë dhe mekanizmat e rikuperimit të të dhënave të dëmtuara janë gjithashtu të disponueshme. Kodi shpërndahet nën licencat MIT dhe Apache-2.0. Në bazë të bibliotekës PyO3 janë përgatitur lidhje për gjuhën Python, të cilat realizojnë API në stilin rarfile për shikimin, testimin dhe ekzekutimin e arkivave, si dhe API në stilin RarBuilder për krijimin ose ripakimin e arkivave.
Veçoria e projektit është se ai implementon punën me formatin RAR pa përdorur kodin e utilitarit unrar, i cili shpërndahet nën një licencë jo të lirë, e cila ndalon përdorimin e kodit unrar për të ripërtërirë algoritmin e kompresimit RAR ose për të zhvilluar një arkivues të përshtatshëm për RAR. Për shkak të kësaj kufizimi, shumica e arkivuesve të lirë janë kufizuar vetëm në funksionet e dekompresimit të skedarëve RAR, ndërsa për krijimin e arkivave RAR duhet të përdorej mjete pronësore nga RARLAB.
Një depo e veçantë rar-research është krijuar, ku janë publikuar specifikimet për formatet RAR 1.3/1.4, RAR 1.5-4.x dhe RAR 5.0/7.0, si dhe shënime mbi algoritmet, filtrat, metodat e verifikimit dhe rikuperimit të integritetit, enkriptimin, ndarjen në vëllime dhe mekanizmat e mbrojtjes të përdorura. Pasiqë në momentin e krijimit të projektit rars nuk ekzistonte një specifikim zyrtar, dokumentacioni është ripërtërirë mbi kodin e dekompresorëve, implementimet e vjetra, arkivat testuese dhe analizat e versioneve binarë të RAR për DOS dhe Windows.
Implementimi u krijua me përdorimin e mjeteve AI OpenAI Codex 5.5 dhe Claude Opus 4.7 në kohën e lirë për rreth pesë javë. Në fazën e parë, modelet u aplikuan për sistemimin e informacionit mbi formatin dhe plotësimin e boshllëqeve në përshkrim, pas së cilës, sipas specifikimit të rikonstruktuar, u gjenerua kodi në gjuhën Rust. Për të sqaruar specifikimin dhe për të përmirësuar implementimin, u përdor kontrolli i funksionimit mbi arkivat reale dhe krahasimi me implementimet referuese.
Vërehet se mjetet AI e kanë përballuar mirë transferimin e përshkrimit formalisht në kod dhe realizimin rutinë të një volum të madh funksionaliteti, por nuk kanë arritur të ofrojnë kontroll arkitektonik. Pa një mbikëqyrje të fortë, modelet AI kishin tendencë të kalonin testet, të komplikonin kodin dhe të linonin jashtë vëmendjes probleme të dukshme që ndikonin në lehtësinë e përdorimit. Sipas vlerësimit të autorit, në një projekt të këtij përmasash, testet, dokumentimi dhe komentet u bënë jo vetëm mjete kontrolli, por edhe një mënyrë për të drejtuar gjenerimin e kodit në drejtimin e duhur.
Zhvillimi u forcua pas shfaqjes së mënyrës "\/goal" në OpenAI Codex, e cila lejon agentin AI të punojë për një kohë të gjatë mbi një detyrë, duke e përmbledhur kontekstin dhe duke vazhduar ekzekutimin pas mbushjes së tij. Në këtë mënyrë, Codex punoi disa herë më shumë se 6 orë dhe një herë rreth 16 orë, duke realizuar një pjesë të rëndësishme të funksionalitetit të mbetur, si rikuperimi i të dhënave, enkriptimi dhe arkivat me shumë vëllime. Duke marrë parasysh subvencionin e konsiderueshëm për tokenat, u shpenzuan 40 funte sterlina.
Në nivelin e kompresimit, rars mesatarisht mbetet pas WinRAR-it për 5-10%. Në sa speed për kompresim dhe shpërbërje, rars është dukshëm më i ngadaltë se WinRAR për shkak të mungesës së optimizimeve të plota. Megjithatë, projekti tashmë ka një mënyrë "—features fast", e cila aplikon optimizime të bazuara në instruksione SIMD për të përshpejtuar kompresimin dhe shpërbërjen, por është e lidhur me API eksperimental std::simd, të cilat janë të disponueshme vetëm në ndërtimet testuese të mjetit Rust. Gjithashtu është realizuar një mënyrë "—features parallel", e cila përdor bibliotekën Rayon për shpërndarjen e kompresimit të skedarëve të veçantë.
Evgeniy Roshal, krijuesi i RAR, komentoi përdorimin e inxhinierisë inverse të skedarëve binary të vjetër RAR gjatë zhvillimit të rars, që ndalohet nga marrëveshja e licencës. Sipas Evgeniy, ai ende nuk ka vendosur se çfarë të bëjë për këtë dhe ka në plan të presë një mendim nga kompania win.rar GmbH.
Burimi: opennet.ru
