
Kosmonaut adalah mesin browser web yang dibuat untuk berfungsi sebagai kendaraan untuk perjalanan Anda melintasi World Wide Web.
Jalan menuju bintang -bintang curam dan berbahaya. Tapi kami tidak takut ... penerbangan luar angkasa tidak bisa dihentikan.
- Yuri Gagarin
Sejauh ini, tidak banyak. Hanya subset CSS yang sangat terbatas yang saat ini didukung, sehingga sebagian besar halaman web tidak akan berfungsi. Namun, mengingat HTML dan CSS yang sangat mendasar, Kosmonaut memang membuat hal -hal yang benar - lihat rendering Kosmonaut Kode ini, dibandingkan dengan yang dari Firefox:

Berikut adalah ringkasan dari hal -hal yang dapat dilakukan Kosmonaut, hal -hal yang sedang saya kerjakan, dan hal -hal yang menuju bagian depan daftar Todo.
writing-mode dan direction 1: Aliran ortogonal (lihat Spec) tidak didukung. Dukungan writing-mode campuran secara umum (termasuk aliran paralel) saat ini rapuh-Saya sarankan cukup menggunakan * { writing-mode: <val> } . ↩
Kosmonaut diciptakan dengan maksud mempelajari pengembangan mesin browser. Namun, proyek ini telah datang sedikit cara sekarang, dan saya sudah memikirkan ceruk yang bisa saya kerjakan untuk menyesuaikan Kosmonaut. Saya telah berbagi beberapa pemikiran tentang ceruk potensial dalam masalah ini, dan akan senang mendengar ide -ide Anda juga.
Kosmonaut dibangun dengan karat menggunakan binding OpenGL melalui GL-RS, glutin untuk manajemen jendela dan pembuatan konteks OpenGL, HTML5ever Servo dan CSSparser untuk parsing HTML dan CSS, dan berbagai perpustakaan tambahan lainnya.
Untuk membangun dari sumber:
apt-get install ).pacman -Syu ).cargo buildUntuk membuat HTML dan CSS dengan Kosmonaut, baik file lulus (HTML dan Opsional CSS):
cargo run -- tests/websrc/rainbow-divs.html
atau URL:
cargo run -- https://twilco.github.io/assets/html/rainbow-divs.html
Untuk menjalankan tes, baik unit dan tata letak, jalankan:
cargo test --all
Untuk tes tata letak, Kosmonaut mengubah HTML dan CSS yang diberikan menjadi pohon kotak, meletakkannya, dan membuangnya sebagai teks. Snapshot teks tersebut diverifikasi dengan Insta.
Jika Anda perlu meninjau / memperbarui snapshot tata letak, akan sangat membantu untuk menginstal alat Insta CLI CARGO So So:
cargo install cargo-insta
Kosmonaut juga dapat menjalankan tes referensi. Tes referensi membuat dua file HTML dan membandingkan hasil piksel-demi-pixel, memastikan mereka sama. Ini berguna dalam banyak skenario, seperti pengujian yang membuat steno membuat sama dengan ekuivalen panjang mereka.
Implementasi Kosmonaut saat ini sangat terinspirasi oleh Servo, kadang -kadang mengambil kode langsung darinya. Dengan demikian, Kosmonaut dilisensikan dengan Lisensi Publik Mozilla 2.0.
Kosmonaut juga mengambil inspirasi dari Robinson. Terima kasih kepada Mbrubeck untuk serangkaian artikel mereka yang hebat di mesin browser.
Akhirnya, implementasi DOM Kosomonaut diambil dari Kuchiki dan telah sedikit dimodifikasi agar sesuai dengan kebutuhan kami.