
Kosmonaut - это двигатель веб -браузера, созданный для того, чтобы служить автомобилем для вашего путешествия по всемирной паутине.
Дорога к звездам крутая и опасная. Но мы не боимся ... космические полеты нельзя остановить.
- Юрий Гагарин
Пока не много. В настоящее время поддерживается только очень ограниченное подмножество CSS, поэтому большинство веб -страниц не будут работать. Однако, учитывая очень основные HTML и CSS, Kosmonaut делает правильные вещи - см. Рендеринг этого кода Косонаута по сравнению с видом Firefox:

Вот краткое изложение вещей, которые может сделать Косонаут, вещи, над которыми я сейчас работаю, и вещей, которые находятся в стороне от списка TODO.
writing-mode и свойствами direction 1: ортогональные потоки (см. Spec) не поддерживаются. Поддержка смешанного writing-mode в целом (включая параллельные потоки) в настоящее время является умоогацией-я рекомендую просто использовать * { writing-mode: <val> } . ↩
Космонаут был создан с намерением обучения разработке двигателей браузера. Тем не менее, проект прошел немного пути, и я думал о нишах, в которые я могу работать над тем, чтобы вписать Космонаут. Я поделился некоторыми мыслями о потенциальных нишах в этом выпуске, и хотел бы услышать ваши идеи.
Kosmonaut построен с Rust с использованием привязки OpenGL через GL-RS, глютин для управления окнами и создания контекста OpenGL, HTML5Ever и CSSPARSER для HTML и CSS и различных других вспомогательных библиотек.
Построить из источника:
apt-get install Bit).pacman -Syu ).cargo buildЧтобы отобразить HTML и CSS с Kosmonaut, либо пропускайте файлы (HTML и, необязательно CSS):
cargo run -- tests/websrc/rainbow-divs.html
или URL:
cargo run -- https://twilco.github.io/assets/html/rainbow-divs.html
Чтобы запустить тесты, как единицу, так и макет, выполнить:
cargo test --all
Для тестов на макет Косонаут преобразует заданные HTML и CSS в дерево коробки, выкладывает его и выпускает в виде текста. Эти текстовые снимки проверены с помощью Insta.
Если вам нужно просмотреть / обновить снимки макета, полезно установить инструмент Cargo Insta CLI, как SO:
cargo install cargo-insta
Kosmonaut также может запускать тесты Ref. REF-тесты рендеринг два HTML-файла и сравнивают результат Pixel-Fy-Pixel, гарантируя, что они одинаковы. Это полезно во многих сценариях, таких как тестирование, которые сокращают, делают то же самое, что и их длинные эквиваленты.
Текущая реализация Kosmonaut сильно вдохновлена сервоприводом, иногда выбирая код непосредственно из нее. Таким образом, Kosmonaut имеет лицензию на публичную лицензию Mozilla 2.0.
Косонаут также черпает вдохновение от Робинсона. Спасибо Mbrubeck за их отличную серию статей по двигателям браузеров.
Наконец, внедрение DOM Косомаута была взята из Кучики и была слегка изменена в соответствии с нашими потребностями.