פרויקט rars הוא יישום חינמי של כלי RAR שנכתבו ב-Rust, התומך הן בפריקה והן ביצירת ארכיוני RAR. הכלים תומכים הן בפורמטים הקודמים של RAR 1.3/1.4 עם חתימת "RE~^" והן בגרסה העדכנית ביותר, RAR 7. פעולות מתקדמות זמינות, כולל פיצול לאמצעי אחסון, הגנה באמצעות סיסמה, הצפנת כותרת, צירוף הערות, מסנני RARVM, אינדקסים לפתיחה מהירה ומנגנונים לתיקון נתונים פגומים. הקוד מופץ תחת רישיונות MIT ו-Apache-2.0. קישורי Python בנויות על ספריית PyO3, ומיישמות API בסגנון rarfile לצפייה, בדיקה וחילוץ ארכיונים, כמו גם API בסגנון RarBuilder ליצירה או אריזה מחדש של ארכיונים.
הייחודיות של הפרויקט היא שהוא מיישם את פורמט RAR מבלי להשתמש בקוד כלי השירות unrar, המופץ תחת רישיון קנייני. רישיון זה אוסר על שימוש בקוד unrar כדי לשחזר את אלגוריתם דחיסת RAR או לפתח ארכוב תואם RAR. עקב מגבלה זו, רוב הארכובים החינמיים הוגבלו לפריקת קבצי RAR וליצירת ארכיוני RAR הנדרשים באמצעות כלים קנייניים של RARLAB.
מאגר נפרד, rar-research, נוצר, המכיל מפרטים עבור הפורמטים RAR 1.3/1.4, RAR 1.5-4.x ו-RAR 5.0/7.0, כמו גם הערות על האלגוריתמים שבהם נעשה שימוש, מסננים, שיטות אימות ושחזור שלמות, הצפנה, פיצול אמצעי אחסון ומנגנוני הגנה. מכיוון שלא היה קיים מפרט רשמי ומקיף בזמן יצירת פרויקט rars, התיעוד נוצר מחדש באמצעות קוד unpacker, יישומים ישנים, ארכיוני בדיקות וניתוח של גרסאות בינאריות של RAR עבור DOS ו-. Windows.
המימוש נוצר באמצעות כלי הבינה המלאכותית OpenAI Codex 5.5 ו-Claude Opus 4.7 בזמני הפנוי במשך תקופה של כחמישה שבועות. בשלב הראשון, נעשה שימוש במודלים כדי לסדר את מידע הפורמט ולמלא פערים בתיאור, ולאחר מכן נוצר קוד Rust על סמך המפרט ששוחזר. כדי לחדד את המפרט ולשפר את המימוש, בוצעו בדיקות על ארכיונים אמיתיים והשוואתם למימושים של ייחוס.
יצוין כי כלי בינה מלאכותית ביצעו ביצועים טובים בתרגום תיאורים פורמליים לקוד וביישום שוטף של כמות גדולה של פונקציונליות, אך לא הצליחו לספק שליטה ארכיטקטונית. ללא פיקוח קפדני, מודלים של בינה מלאכותית נטו לעקוף בדיקות, לסבך קוד ולהחמיץ בעיות ברורות המשפיעות על השימושיות. לדברי המחבר, בפרויקט בסדר גודל כזה, בדיקות, תיעוד והערות הפכו לא רק לכלי אימות אלא גם לדרך להדריך את יצירת הקוד.
הפיתוח הואץ לאחר הצגת מצב "/goal" בקודקס OpenAI, המאפשר לסוכן הבינה המלאכותית לעבוד על משימה אחת למשך פרקי זמן ממושכים, לדחוס את ההקשר ולהמשיך לבצע אותו גם לאחר שהוא גולש. במצב זה, קודקס רץ במשך יותר משש שעות מספר פעמים, ופעם אחת במשך כ-16 שעות, תוך יישום חלק משמעותי מהפונקציונליות הנותרת, כגון שחזור נתונים, הצפנה וארכיונים מרובי נפחים. כולל סבסוד משמעותי של טוקנים, הוצאו 40 ליש"ט על הפרויקט.
מבחינת דחיסה, RARS מפגר אחרי WinRAR בממוצע של 5-10%. מבחינת מהירות דחיסה ופריקה, RARS איטי משמעותית מ-WinRAR עקב היעדר אופטימיזציות מקיפות. עם זאת, הפרויקט כבר כולל מצב "--features fast", המשתמש באופטימיזציות מבוססות SIMD כדי להאיץ את הדחיסה והפירוק, אך מסתמך על ממשק ה-API הניסיוני std::simd, הזמין רק בבניית ניסויים של Rust toolchain. כמו כן יושם מצב "--features parallel", המשתמש בספריית Rayon כדי לבצע מקביליות של דחיסה של קבצים בודדים.
יבגני רושאל, יוצר RAR, התייחס לשימוש בהנדסה הפוכה של קבצי RAR בינאריים ישנים בפיתוח קבצי .rar, דבר האסור על פי הסכם הרישיון. לדברי יבגני, הוא טרם החליט מה לעשות בנידון ומתכוון להמתין לחוות דעתה של win.rar GmbH.
מקור: OpenNet.ru
