
Kosmonaut는 월드 와이드 웹을 가로 지르는 여행의 차량 역할을하도록 만들어진 웹 브라우저 엔진입니다.
별로가는 길은 가파르고 위험합니다. 그러나 우리는 두려워하지 않습니다 ... 우주 비행은 멈출 수 없습니다.
- 유리 가가린
지금까지별로. CSS의 매우 제한된 하위 집합 만 현재 지원되므로 대부분의 웹 페이지는 작동하지 않습니다. 그러나 매우 기본적인 HTML과 CSS가 주어지면 Kosmonaut는 올바른 것을 렌더링합니다. Kosmonaut 의이 코드 렌더링은 Firefox와 비교하여 다음과 같습니다.

다음은 Kosmonaut가 할 수있는 일, 현재 작업중 인 것들 및 Todo 목록 앞에있는 것들에 대한 요약입니다.
writing-mode 및 direction 속성을 갖춘 추상 상자 레이아웃에 대한 1 지원 1 : 직교 흐름 (사양 참조)이 지원되지 않습니다. 일반적으로 혼합 된 writing-mode 지원 (병렬 흐름 포함)은 현재 iffy입니다. 간단히 * { writing-mode: <val> } 사용하는 것이 좋습니다. ↩
Kosmonaut는 브라우저 엔진 개발을 배우기 위해 만들어졌습니다. 그러나이 프로젝트는 지금 약간의 길을 왔으며, 나는 Kosmonaut를 맞추기 위해 노력할 수있는 틈새 시장에 대해 생각하고 있습니다. 나는이 문제에서 잠재적 틈새 시장에 대해 몇 가지 생각을 공유했으며, 당신의 아이디어도 듣고 싶습니다.
Kosmonaut는 GL-RS를 통한 OpenGL 바인딩, Window Management 용 글루틴 및 OpenGL 컨텍스트 생성, 서보의 HTML5EVER 및 HTML 및 CSS 파싱 및 기타 다양한 보조 라이브러리를위한 OpenGL 바인딩, OpenGL 컨텍스트 생성 및 CSSPARSER를 사용하여 RUST로 구축되었습니다.
소스에서 빌드하려면 :
apt-get install 비트).pacman -Syu 비트)에 설치하십시오.cargo buildKosmonaut로 HTML 및 CSS를 렌더링하려면 파일을 통과하고 선택적으로 CSS를 통과합니다.
cargo run -- tests/websrc/rainbow-divs.html
또는 URL :
cargo run -- https://twilco.github.io/assets/html/rainbow-divs.html
테스트를 실행하려면 장치 및 레이아웃을 모두 실행합니다.
cargo test --all
레이아웃 테스트의 경우 Kosmonaut는 주어진 HTML과 CSS를 박스 트리로 변환하여 텍스트로 버립니다. 이 텍스트 스냅 샷은 Insta로 확인됩니다.
레이아웃 스냅 샷을 검토 / 업데이트 해야하는 경우화물 Insta CLI 도구를 설치하는 것이 도움이됩니다.
cargo install cargo-insta
Kosmonaut도 REF 테스트를 실행할 수 있습니다. ref-test는 두 개의 HTML 파일을 렌더링하고 결과 픽셀 별 픽셀을 비교하여 동일하도록합니다. 이는 속기가 동등하고 동일하게 렌더링하는 테스트와 같은 많은 시나리오에서 유용합니다.
Kosmonaut의 현재 구현은 서보에서 크게 영감을 얻었으며 때로는 코드를 직접 가져옵니다. 따라서 Kosmonaut는 Mozilla Public License 2.0으로 라이센스가 부여됩니다.
Kosmonaut는 또한 Robinson에서 영감을 얻습니다. 브라우저 엔진에 대한 훌륭한 기사에 대한 Mbrubeck에게 감사드립니다.
마지막으로, Kosomonaut의 DOM 구현은 Kuchiki에서 가져 왔으며 우리의 요구에 맞게 약간 수정되었습니다.