Bemutatásra került a rars projekt, amely egy nyílt forráskódú eszközkészletet fejleszt a RAR formátumhoz, Rust nyelven írva, amely nemcsak a kicsomagolást, hanem RAR-archívumok létrehozását is támogatja. Az eszközkészlet támogatja a régi RAR 1.3/1.4 formátumokat az „RE~^” aláírással, valamint az RAR 7 legújabb verziót. Elérhetők olyan kiterjesztett műveletek, mint a kötetekre bontás, jelszóvédelem, a fejléc titkosítása, megjegyzések hozzáfűzése, RARVM-szűrők, gyors megnyitáshoz szükséges indexek és sérült adatok helyreállítási mechanizmusai. A kód MIT és Apache-2.0 licenc alatt terjesztésre kerül. A PyO3 könyvtár alapján Python nyelvhez készítettek csomagokat, amelyek a rarfile stílusú API-t valósítják meg az archívumok megtekintésére, tesztelésére és kicsomagolására, valamint a RarBuilder stílusú API-t archívumok létrehozására vagy újrapakolására.
A projekt különlegessége, hogy a RAR formátummal foglalkozik az unrar segédprogram kódjának felhasználása nélkül, amely nem szabad licenc alatt áll, és megtiltja az unrar kód használatát a RAR tömörítési algoritmusának újrateremtéséhez vagy RAR-kompatibilis archiver fejlesztéséhez. Ebből a korlátozásból adódóan a legtöbb szabad archiver csak a RAR fájlok kicsomagolására korlátozódott, míg RAR-archívumok létrehozásához a RARLAB tulajdonosi eszközeit kellett használni.
Külön repository-t hoztak létre rar-research néven, ahol a RAR 1.3/1.4, RAR 1.5-4.x és RAR 5.0/7.0 formátumokra vonatkozó specifikációk, valamint az alkalmazott algoritmusok, szűrők, integritás-ellenőrzési és helyreállítási módszerek, titkosítás, kötetekbe bontás és védelmi mechanizmusok jegyzetei találhatók. Mivel a rars projekt létrehozásának idején hivatalos, teljes körű specifikáció nem létezett, a dokumentációt a kicsomagoló kódok, régi megvalósítások, tesztarchívumok és a RAR DOS és Windows bináris verzióinak elemzése alapján állították össze.
A megvalósítást az OpenAI Codex 5.5 és a Claude Opus 4.7 AI-eszközeivel készítették, a munkaidőn kívül körülbelül öt hét alatt. Az első szakaszban a modellek az információk rendszerezésére és a leírásban való hiányosságok pótlására szolgáltak, ezután a helyreállított specifikáció alapján kódot generáltak Rust nyelven. A specifikáció pontosítása és a megvalósítás csiszolása érdekében valós archívumokon történő ellenőrzést és összehasonlítást használtak a referencia megvalósításokkal.
Megjegyzendő, hogy az AI-eszközök jól teljesítettek a formális leírás kódba való átültetése és nagyszámú funkció rutinszerű megvalósítása során, de nem tudtak korszerű architektúra-ellenőrzést biztosítani. Szoros felügyelet nélkül az AI modellek hajlamosak voltak a tesztek kikerülésére, a kód bonyolítására és a nyilvánvaló problémák figyelmen kívül hagyására, amelyek hatással voltak a munkavégzés kényelmére. A szerző értékelése szerint egy ilyen méretű projektben a tesztek, a dokumentáció és a megjegyzések nem csupán ellenőrzési eszközökké váltak, hanem a kódgenerálás megfelelő irányba állításának eszközévé is.
A fejlesztést sikerült felgyorsítani az OpenAI Codex "\/goal" módjának megjelenésével, amely lehetővé tette az AI ügynök számára, hogy hosszabb ideig dolgozzon egy feladaton, tömörítve a kontextust, és folytatva a végrehajtását annak túltelítődése után. Ebben a módban a Codex többször is dolgozott már 6 óránál többet, egyszer pedig körülbelül 16 órát, jelentős részt megvalósítva a hátralévő funkciókból, mint például az adatvisszaállítás, a titkosítás és a többkötetes archívumok. A jelentős token-támogatások figyelembevételével összesen 40 fontot költöttek el.
A rars tömörítési szintje átlagosan 5-10%-kal elmarad a WinRAR-tól. Tömörítési és kicsomagolási sebesség szempontjából a rars lényegesen lassabb a WinRAR-hoz képest a megfelelő optimalizálások hiánya miatt. Ugyanakkor a projektben már elérhető a "—features fast" mód, amely SIMD utasítások alapú optimalizálásokat alkalmaz a tömörítési és kicsomagolási sebesség növelésére, de amely az Rust eszközkészletek tesztépítményeihez elérhető kísérleti API-ra támaszkodik. Ezen kívül megvalósításra került a "—features parallel" mód is, amely a Rayon könyvtárat használja az egyes fájlok tömörítésének párhuzamosítására.
Eugene Roshall, a RAR létrehozója kommentálta az RAR régi bináris fájljainak visszafejtését a rars fejlesztése során, ami a licencszerződés szerint tilos. Eugén szerint még nem határozta el, mit kezdjen ezzel, és várni kívánja a win.rar GmbH véleményét.
Forrás: opennet.ru
