De Kosmonaut-blêdermotor, skreaun yn Rust, waard yntrodusearre

Yn 'e grinzen fan it projekt kosmonaut In browsermotor wurdt ûntwikkele, folslein skreaun yn 'e Rust-taal en mei guon fan 'e ûntwikkelingen fan it Servo-projekt. Koade ferspraat troch lisinsje ûnder MPL 2.0 (Mozilla Public License). OpenGL-bindingen wurde brûkt foar rendering gl-rs yn Rust taal. Finsterbehear en OpenGL-kontekst oanmeitsjen wurde ymplementearre troch de bibleteek Glutine. Komponinten wurde brûkt om HTML en CSS te parsearjen html5 oer и cssparserûntwikkele troch it projekt Servo.
De koade foar it wurkjen mei de DOM is basearre op de ûntwikkelingen fan it projekt Kuchiki, dy't in bibleteek ûntwikkelet foar it manipulearjen fan HTML/XML. Under de brûkte projekten wurdt ek in eksperimintele webmotor neamd Robinson, dy't sa'n 5 jier yn in semi-ferlitten steat is.

Op it hjoeddeiske stadium fan ûntwikkeling wurde basis HTML-stipe en in beheinde set fan CSS-mooglikheden oanbean, dy't noch net genôch binne om de measte moderne siden te besjen. Dochs ienfâldige siden op divs mei CSS wurde lutsen korrekt. It projekt waard oarspronklik in jier lyn oprjochte om it proses fan it ûntwikkeljen fan browsermotoren te learen, mar besiket no nije niches fan tapassing te finen.

Wat is al útfierd:

  • HTML parsing, CSS subset, cascadearjende CSS, DOM.
  • Side rendering, blokkearje ynhâld yndieling.
  • Diellike stipe foar abstrakt box modellen en eigenskippen"rjochting".
  • It generearjen fan debug-dumps mei in beam fan werjûn eleminten.
  • Unterstützt willekeurige skaalfaktoaren foar skermen mei hege DPI.
  • Tekst werjaan mei de FreeType-bibleteek.
  • stipe Flow Layout, kontekstgefoelige ynline opmaak en rendering.

Boarne: opennet.ru

Add a comment