Ang Kosmonaut browser engine, na nakasulat sa Rust, ay ipinakilala

Sa mga hangganan ng proyekto kosmonaut Ang isang browser engine ay binuo, ganap na nakasulat sa Rust na wika at gamit ang ilan sa mga pagpapaunlad ng proyekto ng Servo. Code ipinamahagi ni lisensyado sa ilalim ng MPL 2.0 (Mozilla Public License). Ang mga openGL binding ay ginagamit para sa pag-render gl-rs sa wikang Rust. Ang pamamahala ng window at paglikha ng konteksto ng OpenGL ay ipinapatupad ng library Glutin. Ginagamit ang mga bahagi para i-parse ang HTML at CSS html5ever ΠΈ cssparserbinuo ng proyekto Magpaandar buhat sa malayo.
Ang code para sa pagtatrabaho sa DOM ay batay sa mga pag-unlad ng proyekto Kuchiki, na bumubuo ng library para sa pagmamanipula ng HTML/XML. Sa mga proyektong ginamit, binanggit din ang isang pang-eksperimentong web engine Robinson, na nasa isang semi-abandonadong estado sa loob ng humigit-kumulang 5 taon.

Sa kasalukuyang yugto ng pag-unlad, ang pangunahing suporta sa HTML at isang limitadong hanay ng mga kakayahan ng CSS ay ibinibigay, na hindi pa sapat upang tingnan ang karamihan sa mga modernong pahina. Gayunpaman mga simpleng pahina sa mga div na may CSS ay iginuhit nang tama. Ang proyekto ay orihinal na itinatag noong isang taon upang ituro ang proseso ng pagbuo ng mga browser engine, ngunit ngayon ay sinusubukang maghanap ng mga bagong niches ng application.

Ano ang naipatupad na:

  • HTML parsing, CSS subset, cascading CSS, DOM.
  • Pag-render ng pahina, pag-block ng layout ng nilalaman.
  • Bahagyang suporta para sa abstract mga modelo ng kahon at mga ari-arian"utos".
  • Bumubuo ng mga debug dump na may puno ng mga ipinapakitang elemento.
  • Sinusuportahan ang arbitrary scaling factor para sa mga High-DPI screen.
  • Pag-render ng text gamit ang FreeType library.
  • Suporta Layout ng Daloy, inline na pag-format at pag-render na sensitibo sa konteksto.

Pinagmulan: opennet.ru

Magdagdag ng komento