כדי להמשיך ולפתח את דפדפן Ladybird, הוחלט להשתמש בשפת Swift

מפתחי הדפדפן הניסיוני Ladybird הודיעו על כוונתם להשתמש בשפת התכנות Swift כשפה הראשית לפרויקט שלהם. ההכללה בקוד Swift מתוכננת להתחיל בסתיו, לאחר שחרורו של Swift 6 (השימוש בסניף Swift 5 נמנע על ידי החיבור לגרסה הישנה של Clang, שאינה תואמת את בסיס הקוד הנוכחי של Ladybird ב-C++) . הודות ליכולת לשלב קוד ב-C++ וב-Swift, Swift תיושם בהדרגה מבלי לשכתב את הקוד הקיים.

Swift נבחרה בשל מספר יתרונות, כולל תרגולים בטוחים בזיכרון, הגנה מפני תנאי גזע, תחביר מודרני וארגונומיה. חשיבות מיוחדת לצוות Ladybird הוא האופי מונחה העצמים של סוויפט, המאפשר לו לדגמן בצורה מדויקת יותר מפרטי אינטרנט וחלקים פנימיים של הדפדפן. המפתחים מציינים גם את שיפור התמיכה ב-Swift בפלטפורמות שאינן של אפל ועבודה פעילה על תאימות עם C++, מה שסוללת את הדרך להחדרה הדרגתית של השפה לפרויקט. למרות הקשרים ההיסטוריים של סוויפט עם אפל, השפה הופכת עצמאית יותר ויותר, כפי שמעידה, למשל, העברת המאגר שלה לארגון נפרד ב-GitHub.

אנדראס קלינג, מייסד פרויקט Ladybird, שיתף את מחשבותיו על Rust. לדברי קלינג, בעוד של-Rust יש מערכת אקולוגית מרשימה, היא פחות מתאימה לפיתוח תוכניות ארוכות חיים עם גרפי אובייקטים גדולים ומורכבים. בנוסף, קלינג תיאר את קהילת Rust כ"רעילה".

נזכיר כי דפדפן Ladybird פותח בתחילה כחלק מפרויקט לפיתוח מערכת ההפעלה SerenityOS. ביוני 2024, אנדראס קלינג, שעבד פעם בנוקיה ופיתח את Safari, החליט להפריד את פרויקט הדפדפן מפרויקט מערכת ההפעלה ולהקדיש את זמנו במלואו לפיתוחו. ביולי, הפרויקט קיבל תרומה של מיליון דולר והחל להקים את עמותת Ladybird Browser Initiative.

הדפדפן כתוב ב-C++ ומופץ תחת רישיון BSD. הפרויקט מפתח מנוע משלו LibWeb, מתורגמן JavaScript LibJS, עיבוד טקסט וספריית גרפיקה דו-ממדית LibGfx, מנוע ביטוי רגולרי LibRegex, מנתח XML LibXML, מתורגמן קוד ביניים WebAssembly (LibWasm), ספרייה לעבודה עם Unicode LibUnicode, ספרייה להמרת טקסט LibTextCodec קידודים, מנתח Markdown (LibMarkdown), ספריות עם פרימיטיבים קריפטוגרפיים (LibCrypto, LibTLS), ספרייה לעבודה עם ארכיוני LibArchive, ספריות להשמעת אודיו ווידאו (LibAudio, LibVideo) וספריית LibCore עם קבוצה משותפת של פונקציות שימושיות, כגון המרת זמן, I/O ועיבוד סוג MIME.

ליידיבירד משתמשת בארכיטקטורה מרובת תהליכים, שבה התהליך האחראי על יצירת הממשק מופרד מתהליכים האחראים על עיבוד תוכן אינטרנט, שליחת בקשות רשת, פענוח תמונות ואחסון עוגיות. מטפלים הקשורים לפענוח תמונות ואינטראקציה עם הרשת מופרדים לתהליכים נפרדים כדי לשפר את הבידוד והאבטחה. כל כרטיסייה משתמשת בתהליך עיבוד תוכן אינטרנט נפרד, המבודד משאר המערכת. כדי לבנות את הממשק ב... macOS AppKit משמש ב Android — ממשק ה-GUI המקורי (API) עבור פלטפורמה זו, בעוד ש-Qt משמש בפלטפורמות אחרות. הוא תומך בתקני אינטרנט מרכזיים (הדפדפן עובר מבחני Acid3), HTTP/1.1 ו-HTTPS. לממשק ה-GUI עיצוב קלאסי ותומך בטאבים.

מקור: OpenNet.ru

קנה אירוח אמין לאתרים עם הגנת DDoS, שרתי VPS VDS 🔥 קנה אחסון אתרים אמין עם הגנת DDoS, שרתי VPS VDS | ProHoster