Projekt rars připravil svobodnou implementaci RAR s podporou vytváření archivů

Byl představen projekt rars, který vyvíjí svobodnou implementaci nástrojů pro formát RAR, napsanou v jazyce Rust a podporující nejen rozbalování, ale také vytváření RAR archivů. Nástroje podporují jak starší formáty RAR 1.3/1.4 se signaturou „RE~^“, tak i nejnovější verzi RAR 7. K dispozici jsou také pokročilé operace, jako je dělení na objemy, ochrana heslem, šifrování záhlaví, připojování komentářů, RARVM filtry, indexy pro rychlé otevírání a mechanizmy obnovy poškozených dat. Kód je distribuován pod licencemi MIT a Apache-2.0. Na základě knihovny PyO3 byly připraveny obálky pro jazyk Python, které realizují API ve stylu rarfile pro prohlížení, testování a extrakci archivů, stejně jako API ve stylu RarBuilder pro vytváření nebo znovuvytváření archivů.

Speciálností projektu je, že realizuje práci s formátem RAR bez použití kódu nástroje unrar, který je distribuován pod neregulovanou licencí zakazující použití kódu unrar pro rekonstrukci algoritmu komprese RAR nebo vývoj RAR-kompatibilního archivačního nástroje. V důsledku tohoto omezení se většina svobodných archivačních nástrojů omezila pouze na funkce rozbalování RAR souborů, a pro vytváření RAR archivů bylo nutné používat proprietární nástroje od RARLAB.

Byl vytvořen samostatný repozitář rar-research, ve kterém jsou zveřejněny specifikace pro formáty RAR 1.3/1.4, RAR 1.5-4.x a RAR 5.0/7.0, stejně jako poznámky k používaným algoritmům, filtrům, metodám kontroly a obnovy integrity, šifrování, dělení na objemy a mechanizmům ochrany. Vzhledem k tomu, že v době vzniku projektu rars neexistovala oficiální plná specifikace, byla dokumentace rekonstruována na základě kódu rozbalovačů, starých implementací, testovacích archivů a analýzy binárních verzí RAR pro DOS a Windows.

Implementace byla vytvořena pomocí AI nástrojů OpenAI Codex 5.5 a Claude Opus 4.7 ve volném čase asi za pět týdnů. V první fázi byly modely použity k systematizaci informací o formátu a doplnění mezer v popisu, poté byl podle rekonstruované specifikace vygenerován kód v jazyce Rust. Pro upřesnění specifikace a zdokonalení implementace bylo použito testování s reálnými archivy a porovnání s referenčními implementacemi.

Bylo zaznamenáno, že AI nástroje si dobře poradili s převodem formálního popisu do kódu a s rutinním prováděním velkého objemu funkcí, ale nedokázali zajistit architektonickou kontrolu. Bez přísného dohledu měly AI modely tendenci obcházet testy, komplikovat kód a přehlížet zjevné problémy ovlivňující uživatelskou přívětivost. Podle autora se v projektu takového rozsahu testy, dokumentace a komentáře staly nejen nástroji pro ověřování, ale také způsobem, jak nasměrovat generaci kódu správným směrem.

Vývoj se podařilo urychlit po zavedení režimu "\/goal" ve službě OpenAI Codex, který umožňuje AI agentovi pracovat na jednom úkolu dlouhou dobu, zúžit kontext a pokračovat v provádění po jeho naplnění. V tomto režimu Codex pracoval několikrát více než 6 hodin a jednou asi 16 hodin, čímž realizoval značnou část zbývající funkčnosti, jako je obnova dat, šifrování a vícestránkové archivy. S ohledem na značné dotace na tokeny bylo utraceno 40 britských liber.

Pokud jde o úroveň komprese, rars v průměru zaostává za WinRAR o 5-10 %. Co se rychlosti komprese a dekomprese týče, rars je výrazně pomalejší než WinRAR kvůli absenci plnohodnotných optimalizací. V projektu je však již režim "—features fast", který používá optimalizace na základě instrukcí SIMD pro urychlení komprese a dekomprese, ale je závislý na experimentálním API std::simd, dostupném pouze v testovacích sestaveních nástroje Rust. Také byl implementován režim "—features parallel", který využívá knihovnu Rayon pro paralelizaci komprese jednotlivých souborů.

Evgeny Roshal, tvůrce RAR, okomentoval použití reverzního inženýrství starých binárních souborů RAR při vývoji rars, což je zakázáno licenční smlouvou. Podle Evgenyho se zatím nerozhodl, co s tím udělat, a plánuje počkat na názor společnosti win.rar GmbH.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster