ארכיטקטורה
bae הוא ליבת Rust אחת שלובשת ארבעה יישומים מקוריים. כל מה שמגדיר את המוצר, מודל הספרייה, ייבוא, ניגון, סנכרון והצפנה, חי ב-Rust ומתנהג אותו הדבר בכל פלטפורמה; כל יישום הוא ממשק מקורי דק מעליה.
השכבות
קישור למקטע הזהbae-core: המוצר. מודל הספרייה והמטא־נתונים, צינורות הייבוא והזיהוי, מנוע הניגון של FFmpeg, ניתוח עוצמת שמע, ייצוא והחיבור ל-coven שמתחתיו. ייבוא וזיהוי נבנים רק במחשב שולחני; בניות מובייל הן לקוחות סנכרון וניגון.- coven: שכבת הנתונים, ספרייה נפרדת. coven מחזיקה את חיבור SQLite, לוכדת כל שינוי ש-bae שומר, ומסנכרנת את השינויים האלה בהצפנה מקצה לקצה דרך אחסון הענן של המשתמש. היא מחזיקה גם אחסון blob (בתי שמע, אמנות), את המטמון המקומי, מפתחות זהות וחברות. bae מצמיד גרסת coven מדויקת ומטביע אותה בכל קובץ בינארי; היא מגדירה את דור תאימות הסנכרון בין בניות.
bae-bridge: גבול UniFFI. טיפוסי הגשר מוגדרים פעם אחת ב-Rust ונוצרים ל-Swift ו-Kotlin בזמן הבנייה.- היישומים: SwiftUI ב-macOS ו-iOS, Jetpack Compose ב-Android, ויישום Windows מקורי. כל אחד גם מממש את חלקי הפלטפורמה שהליבה מבקשת: פלט שמע, זיהוי טקסט באמנות, פקדי מדיה, גישה למחזיק מפתחות ודיווח קריסות.
לצד היישומים: bae-mcp (שרת MCP), bae-cli (שורת פקודה), ו-bae-automation (שכבת הכלים המשותפת ששניהם משתמשים בה).
ספרייה אחת בדיסק
קישור למקטע הזהספרייה חיה ב-~/.bae/libraries/<library-id>/ (תיקיית נתוני פלטפורמה במובייל):
~/.bae/libraries/<id>/ library.db # SQLite: קטלוג, קרדיטים, מפרטי ניגון config.yaml # הגדרות מקומיות למכשיר, לעולם לא מסתנכרנות storage/ local/ # אובייקטים בינאריים שהמכשיר הזה מחזיק (עטיפות, תמונות אמנים) cache/ # עותקים בני פינוי של אובייקטים בינאריים מהענן pinned/ # עותקים מוצמדים ללא רשת, לעולם לא מפוניםמסד הנתונים נפתח רק דרך coven, שמניחה את טבלאות הניהול שלה (סמני סנכרון, תיבת יציאה, מצב blob) לצד הסכמה של bae ומריצה את ההגירות של bae. קובצי שמע שיובאו כלא מנוהלים אינם תחת ~/.bae כלל: מסד הנתונים מפנה אליהם בנתיבים שבהם יובאו.
סודות לעולם לא חיים בקבצים האלה. מפתחות זהות, מפתח ההצפנה של הספרייה, אישורי ענן ואסימוני API חיים במחזיק המפתחות של מערכת ההפעלה (Keychain בפלטפורמות Apple, מסונכרן דרך iCloud Keychain; המקבילות של הפלטפורמה במקומות אחרים).
מהדורות
קישור למקטע הזהשתי מהדורות בזמן בנייה קיימות בכל פלטפורמה. bae מקמפלת פנימה את ספקי OAuth (Google Drive, Dropbox, OneDrive), CloudKit וטלמטריה. baeium מקמפלת את כל זה החוצה: אחסון תואם S3 בלבד, ובלי טלמטריה, שום דבר קנייני בעץ התלויות. המהדורות הן אותו מקור ואותה ליבה; דגל תכונה קובע את רשימת הספקים ואת חיבור האבחון.
גרסאות
קישור למקטע הזהיישומים מקבלים גרסה כ-MAJOR.MINOR לכל פלטפורמה. המספר הראשי הוא תקופת התאימות, משותפת לכל יישום: מכשירים באותו מספר ראשי יכולים לסנכרן ספרייה. הוא עולה רק כשפורמט תעבורה או דיסק נשבר, לרוב גרסת coven המוצמדת. המספר המשני סופר הוצאות לכל יישום ואינו ניתן להשוואה בין פלטפורמות.