Kosmonaut browser cav, sau hauv Rust, tau qhia

Nyob rau hauv qhov project ciam teb cosmonaut Lub cav browser tab tom tsim, sau tag nrho hauv cov lus Rust thiab siv qee qhov kev txhim kho ntawm Servo project. Code faib los ntawm muaj ntawv tso cai raws li MPL 2.0 (Mozilla Public License). OpenGL bindings yog siv rau rendering gl-rs ua hauv lus Rust. Kev tswj qhov rais thiab OpenGL cov ntsiab lus tsim yog siv los ntawm lub tsev qiv ntawv Glutin. Cheebtsam yog siv los txheeb xyuas HTML thiab CSS html5 ib ΠΈ cssparser uatsim los ntawm qhov project Servo.
Txoj cai rau kev ua haujlwm nrog DOM yog raws li qhov project qhov kev tsim kho Kuchiki, uas tsim lub tsev qiv ntawv rau kev tswj hwm HTML / XML. Ntawm cov haujlwm uas siv, kev sim lub vev xaib kuj tau hais Robinson, uas tau nyob rau hauv ib lub xeev ib nrab tso tseg rau txog 5 xyoo.

Nyob rau theem tam sim no ntawm kev txhim kho, kev txhawb nqa HTML yooj yim thiab cov txheej txheem CSS muaj peev xwm raug muab, uas tseem tsis tau txaus los saib cov nplooj ntawv niaj hnub no. Txawm li cas los xij nplooj ntawv yooj yim ntawm divs nrog CSS yog kos kom raug. Qhov project yog thawj zaug nrhiav tau ib xyoos dhau los los qhia cov txheej txheem ntawm kev tsim browser xyaw, tab sis tam sim no sim nrhiav niches tshiab ntawm daim ntawv thov.

Dab tsi twb tau muab coj los siv:

  • HTML parsing, CSS subset, cascading CSS, DOM.
  • Page rendering, thaiv cov ntsiab lus layout.
  • Kev txhawb nqa ib nrab rau kev paub daws teeb meem lub thawv qauv thiab cov khoom "kev taw qhia".
  • Generating debug dumps nrog ib tsob ntoo ntawm cov ntsiab lus pom.
  • Txhawb nqa arbitrary scaling yam rau High-DPI cov ntxaij vab tshaus.
  • Rendering ntawv siv lub tsev qiv ntawv FreeType.
  • kev pab txhawb nqa Flow Layout, cov ntsiab lus-sensitive inline formatting thiab rendering.

Tau qhov twg los: opennet.ru

Ntxiv ib saib