توسعه دهندگان مرورگر آزمایشی Ladybird قصد خود را برای استفاده از زبان برنامه نویسی Swift به عنوان زبان اصلی پروژه خود اعلام کرده اند. قرار است گنجاندن در کد سوئیفت در پاییز و پس از انتشار سوئیفت 6 آغاز شود (استفاده از شاخه سوئیفت 5 با اتصال به نسخه قدیمی Clang که با پایه کد Ladybird فعلی در C++ ناسازگار است، جلوگیری می کند) . به لطف قابلیت ترکیب کد در C++ و Swift، Swift به تدریج بدون بازنویسی کدهای موجود پیاده سازی خواهد شد.
سوئیفت به دلیل چندین مزیت از جمله شیوه های ایمن حافظه، محافظت در برابر شرایط مسابقه، نحو مدرن و ارگونومی انتخاب شد. از اهمیت ویژهای برای تیم لیدیبرد، ماهیت شیگرای سوئیفت است که به آن اجازه میدهد تا مشخصات وب و داخلی مرورگر را با دقت بیشتری مدلسازی کند. توسعه دهندگان همچنین به بهبود پشتیبانی سوئیفت برای پلتفرم های غیر اپل و کار فعال روی سازگاری با C++ اشاره می کنند که راه را برای معرفی تدریجی این زبان به پروژه هموار می کند. علیرغم پیوندهای تاریخی سوئیفت با اپل، این زبان به طور فزاینده ای مستقل می شود، به عنوان مثال، با انتقال مخزن آن به یک سازمان جداگانه در GitHub مشهود است.
آندریاس کلینگ، بنیانگذار پروژه لیدی برد، نظرات خود را در مورد Rust به اشتراک گذاشت. به گفته کلینگ، اگرچه Rust دارای یک اکوسیستم چشمگیر است، اما برای توسعه برنامه های طولانی مدت با نمودارهای شی بزرگ و پیچیده کمتر مناسب است. علاوه بر این، کلینگ جامعه Rust را "سمی" توصیف کرد.
به یاد بیاوریم که مرورگر Ladybird در ابتدا به عنوان بخشی از پروژه توسعه سیستم عامل SerenityOS توسعه یافت. در ژوئن 2024، آندریاس کلینگ که زمانی در نوکیا کار می کرد و در حال توسعه سافاری بود، تصمیم گرفت پروژه مرورگر را از پروژه سیستم عامل جدا کند و تمام وقت خود را به توسعه آن اختصاص دهد. در ماه ژوئیه، این پروژه یک میلیون دلار کمک مالی دریافت کرد و شروع به تشکیل طرح غیرانتفاعی Ladybird Browser Initiative کرد.
مرورگر به زبان C++ نوشته شده و تحت مجوز BSD توزیع شده است. این پروژه در حال توسعه موتور LibWeb خود، مفسر جاوا اسکریپت LibJS، رندر متن و کتابخانه گرافیکی دوبعدی LibGfx، موتور بیان منظم LibRegex، تجزیه کننده XML LibXML، مفسر کد میانی WebAssembly (LibWasm)، کتابخانه ای برای کار با Unicode LibUnicodec، کتابخانه برای تبدیل متن LibUnicdec کدگذاری ها، تجزیه کننده Markdown (LibMarkdown)، کتابخانه هایی با رمزنگاری های اولیه (LibCrypto، LibTLS)، کتابخانه ای برای کار با آرشیوهای LibArchive، کتابخانه هایی برای پخش صدا و تصویر (LibAudio، LibVideo) و کتابخانه LibCore با مجموعه ای از توابع مفید مشترک، مانند تبدیل زمان، I/O و پردازش نوع MIME.
В Ladybird применяется многопроцессная архитектура, в которой занимающийся формированием интерфейса процесс отделён от процессов, обеспечивающих обработку web-контента, отправку запросов по сети, декодирование изображений и хранение Cookie. Связанные с декодированием изображений и сетевым взаимодействием обработчики выделены в отдельные процессы для усиления изоляции и защиты. Для каждой вкладки используется отдельный процесс обработки web-контента, изолированный от остальной системы. Для построения интерфейса в macOS AppKit در موارد زیر استفاده میشود: Android — родной для данной платформы API создания графического интерфейса, а на остальных платформах — Qt. Поддерживаются основные web-стандарты (браузер проходит тесты Acid3), HTTP/1.1 и HTTPS. Графический интерфейс оформлен в классическом стиле и поддерживает вкладки.
منبع: opennet.ru
