Bottles בשלב הבא, השכתוב של Bottles to Rust ישתמש ב-libcosmic

לוגו Bottles Next

מפתחי Bottles חשפו לאחרונה , באמצעות פוסט בבלוג , פרטים על העבודה שיעשו על Bottles Next, יוזמה שמטרתה לעצב מחדש לחלוטין את הארכיטקטורה ובסיס הקוד של הפרויקט.

בהצהרה מוזכר כי הגרסה הנוכחית של Bottles, שנכתבה בפייתון עם ממשק מבוסס GTK, מתמודדת עם מגבלות משמעותיות המעכבות את שילובן של תכונות חדשות, כגון תמיכה ב-macOS, ומציבה בעיות שניתן לפתור רק באמצעות שינוי מבני עמוק.

לפני יותר משנה הכרזנו על Bottles Next, שכתוב מלא של פרויקט Bottles. בתחילה, הרעיון היה למנף טכנולוגיות אינטרנט כדי להשיג את החוויה שדמיינו עבור המשתמשים שלנו. עם זאת, כפי שקורה לעתים קרובות, היה מחקר מקיף, ויכוח, ניסויים והערכה מחדש מתמשכת.

למה לעבור את כל הצרות האלה? ובכן, כדי לוודא שאנחנו מקבלים את ההחלטות הנכונות.

לאחר ההכרזה, התחלנו להתנסות בטכנולוגיות רבות, אך מעל הכל, הקשבנו למשוב מהקהילה, במיוחד אלה הקשורים לאלקרון. זה גרם לנו לחקור נתיבים אחרים, מה שהוביל אותנו ליצור אבות טיפוס של מסגרת המותאמים לצרכים הספציפיים של Bottles Next.

והנה אנחנו היום.

זו הסיבה שהגישה החדשה מחלקת את היישום לשלושה מרכיבים עיקריים:

  • לקוח: אחראי על הממשק הגרפי
  • שרת: אחראי על ההיגיון להפעלת אפליקציות וניהול קידומות Wine
  • סוכן: הפועל בתוך Wine כדי ליצור אינטראקציה ישירה עם ה-API של Windows.

למרות שבהתחלה שקלו ליישם את הלקוח עם טכנולוגיות אינטרנט כמו Electron ו-VueJS, ולפתח את השרת ב-Go, תגובת הקהילה והתוצאות שהתקבלו עם האבות טיפוס הובילו את המפתחים לנטוש רעיון זה.

לכן, בסופו של דבר הוחלט להשתמש ב-Rust הן עבור הלקוח והן עבור השרת, בעוד שהממשק הגרפי יתבסס על מסגרת libcosmic. מסגרת זו, המשמשת בסביבת שולחן העבודה COSMIC, היא הרחבה של ספריית iced , המאפשרת יצירת ממשקים גרפיים מודרניים וניתנים להרחבה. Libcosmic מאמצת מודל תכנות ריאקטיבי ועוקבת אחר ארכיטקטורה דומה לזו של שפת Elm ההצהרתית, מה שמקל על מפתחים המכירים גישה זו להבין.

בקבוקים-הבא-חלודה

למרות שהמפתחים היו מעדיפים לעבוד עם שפת Go, הם בחרו בסופו של דבר ב-Rust עקב הזמינות המוגבלת של כלים איכותיים לפיתוח ממשקים גרפיים ב-Go. למרות המעבר הזה, הארכיטקטורה החדשה כוללת גם תוכניות לשמר את הגרסה הקלאסית של הממשק כאופציה, מה שמציע למשתמשים חוויה מוכרת תוך הסתגלות לסטנדרטים וטכנולוגיות חדשים.

מבחינת רינדור, Bottles Next יתמוך במנועי עיבוד כגון Vulkan, Metal, DX12, OpenGL 2.1+ ו-OpenGL ES 2.0+, מה שיבטיח יכולת הסתגלות רחבה למערכות וחומרה שונות. עיצוב מחדש זה מבטיח לספק ביצועים משופרים, להרחיב תאימות חוצת פלטפורמות ולספק בסיס איתן יותר לפיתוח עתידי של Bottles.

עדכון זה משפיע הן על Bottles Legacy (הגרסה הנוכחית של Bottles) והן על Bottles Next. בשבועות הקרובים תושלם הגרסה הראשונה של cpak. זהו פורמט הפצת תוכנה נייד ונטול כפילות המבוסס כולו על תמונות OCI.

כמו כן, צוין כי סוכן Bottles Next, הפועל בסביבת Windows שנוצרת על ידי Wine, ייכתב ב-C# באמצעות .NET. בחירה זו עונה על הצרכים הספציפיים של שירות WineBridge, הדורש אינטגרציה יעילה עם ממשק ה-API של Windows בסביבה מדומה.

בנוגע לפיתוח, צפוי לצאת בעוד מספר שבועות קונטיינר לבדיקת האב טיפוס הראשוני של Bottles Next, שנכתב כולו ב-Rust . נכון לעכשיו, זמינה רק גרסת הדגמה בסיסית, המאפשרת למשתמשים לקבל מושג ראשוני על יכולות הפרויקט וכיוון הפרויקט. מעבר זה ל-Bottles Next מבטיח שיפורים משמעותיים בפונקציונליות, תאימות וביצועים.

לבסוף, אם אתם מעוניינים ללמוד עוד על כך , תוכלו למצוא פרטים נוספים בקישור הבא.


הוסף כמקור מועדף בגוגל