Представлен браузерный движок Kosmonaut, написанный на языке Rust

16 августа 2020 года

В рамках проекта Kosmonaut развивается браузерный движок, написанный целиком на языке Rust и использующий некоторые наработки проекта Servo. Код распространяется под лицензией MPL 2.0 (Mozilla Public License). Для отрисовки используются OpenGL-привязки gl-rs на языке Rust. Управление окнами и создание контекста OpenGL реализовано силами библиотеки Glutin. Для разбора HTML и CSS применяются компоненты html5ever и cssparser, развиваемые проектом Servo. Код для работы с DOM основан на наработках проекта Kuchiki, развивающего библиотеку для манипуляций с HTML/XML. Среди используемых проектов также упоминается экспериментальный web-движок Robinson, который около 5 лет находится в полузаброшенном состоянии.

На текущем этапе развития обеспечена базовая поддержка HTML и ограниченный набор возможностей CSS, которых пока недостаточно для просмотра большинства современных страниц. Тем не менее простые страницы на div-ах с CSS отрисовываются корректно. Изначально проект был основан год назад для обучения процессу разработки браузерных движков, но теперь пытается найти новые ниши применения.

Что уже реализовано:
  • Разбор HTML, подмножество CSS, каскадные CSS, модель DOM.
  • Отрисовка страницы, блочная компоновка содержимого.
  • Частичная поддержка абстрактной box-модели и свойств «direction».
  • Формирование отладочных дампов с деревом отображаемых элементов.
  • Поддержка произвольных коэффициентов масштабирования для экранов High-DPI.
  • Отрисовка текста при помощи библиотеки FreeType.
  • Поддержка Flow Layout, контекстно зависимого inline-форматирования и отрисовки.

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «Представлен браузерный движок Kosmonaut, написанный на языке Rust», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.