Projekt rars pripravil voľnú implementáciu RAR s podporou vytvárania archívov

Predstavujeme projekt rars, ktorý vyvíja voľnú implementáciu nástrojov pre formát RAR, napísaný v jazyku Rust a podporujúci nielen rozbalenie, ale aj tvorbu RAR-archívov. Nástroje podporujú ako staršie formáty RAR 1.3/1.4 so signatúrou „RE~^“, tak aj najnovšiu verziu RAR 7. K dispozícii sú aj rozšírené operácie, ako je rozdelenie na objemy, ochrana heslom, šifrovanie hlavičiek, pridávanie komentárov, RARVM filtre, indexy pre rýchle otvorenie a mechanizmy na obnovu poškodených dát. Kód je distribuovaný pod licenciami MIT a Apache-2.0. Na základe knižnice PyO3 boli pripravené wrappers pre jazyk Python, ktoré implementujú API v štýle rarfile na prezeranie, testovanie a extrakciu archívov, ako aj API v štýle RarBuilder na vytváranie alebo prebalenie archívov.

Rys projektu spočíva v tom, že realizuje prácu s formátom RAR bez použitia kódu utilitky unrar, distribuovanej pod nevoľnou licenciou, ktorá zakazuje používanie kódu unrar na znovu vytvorenie algoritmu kompresie RAR alebo vývoj RAR-kompatibilného archívu. Vzhľadom na toto obmedzenie väčšina voľných archívov obmedzovala iba na funkcie rozbalenia RAR-súborov, zatiaľ čo na vytváranie RAR-archívov bolo potrebné používať proprietárne nástroje od RARLAB.

Samostatne bol vytvorený repozitár rar-research, v ktorom sú publikované špecifikácie pre formáty RAR 1.3/1.4, RAR 1.5-4.x a RAR 5.0/7.0, ako aj poznámky k použitým algoritmom, filtrům, metódam kontroly a obnovenia integrity, šifrovaniu, rozdeleniu na objemy a mechanizmom ochrany. Keďže v čase vytvorenia projektu rars neexistovala oficiálna kompletná špecifikácia, dokumentácia bola znovu vytvorená na základe kódu rozbaľovačov, starých implementácií, testovacích archívov a analýzy binárnych verzií RAR pre DOS a Windows.

Implementácia bola vytvorená s použitím AI nástrojov OpenAI Codex 5.5 a Claude Opus 4.7 vo voľnom čase na približne päť týždňov. V prvej fáze sa modely používali na systematizáciu informácií o formáte a doplnenie medzier v popise, po čom bol na základe obnovených špecifikácií vygenerovaný kód v jazyku Rust. Na spresnenie špecifikácie a zdokonaľovanie implementácie sa využívala kontrola funkcie na reálnych archívoch a porovnanie s etalónnymi implementáciami.

Je zaznamenané, že nástroje AI dobre zvládajú prevod formálneho opisu do kódu a rutinnú realizáciu veľkého objemu funkcionality, ale nedokázali zabezpečiť architektonickú kontrolu. Bez prísneho dohľadu boli modely AI náchylné obchádzať testy, zložiť kód a prehliadať zjavné problémy, ktoré ovplyvnili používateľský komfort. Podľa hodnotenia autora sa v projekte takéhoto rozsahu testy, dokumentácia a komentáre stali nielen nástrojmi na overenie, ale aj spôsobom, ako nasmerovať generáciu kódu do správneho smeru.

Vývoj sa podarilo urýchliť po zavedení režimu "\/goal" v OpenAI Codex, ktorý umožňuje AI agentovi dlhodobo pracovať na jednej úlohe, komprimujúc kontext a pokračujúc v realizácii po jeho preplnení. V tomto režime Codex niekoľkokrát pracoval viac ako 6 hodín a raz približne 16 hodín, implementujúc významnú časť zostávajúcej funkcionality, ako je obnova údajov, šifrovanie a viacdiskové archívy. Vzhľadom na značnú dotáciu na tokeny bolo vynaložených 40 britských libier.

Z hľadiska kompresného pomeru rars v priemere zaostáva za WinRAR o 5-10%. Z hľadiska rýchlosti kompresie a rozbaľovania je rars podstatne pomalší ako WinRAR z dôvodu absencie plnohodnotných optimalizácií. V projekte už existuje režim "—features fast", ktorý aplikuje optimalizácie založené na SIMD inštrukciách na urýchlenie kompresie a rozbaľovania, ale je viazaný na experimentálne API std::simd, dostupné iba v testovacích build-och nástrojov Rust. Taktiež bol implementovaný režim "—features parallel", ktorý využíva knižnicu Rayon na paralelizáciu kompresie jednotlivých súborov.

Evgeny Roshal, tvorca RAR, komentoval používanie reverzného inžinierstva starých binárnych súborov RAR pri vývoji rars, čo je zakázané licenčnou dohodou. Podľa Evgenyho zatiaľ nie je rozhodnutý, čo s tým robiť, a plánuje počkať na názor firmy win.rar GmbH.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster