Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Projektin rakenne

  • components
    • bluetooth — Bluetooth-säieen toteutus.
    • canvas — 2D- ja WebGL-canvasien maalaussäieiden toteutus.
    • compositing — Integraatio OS:n ikkunointi/renderöinti- ja tapahtumasilmukkaan.
    • constellation — Resurssien hallinta ylätason selauskontekstille (ts. välilehdelle).
    • devtools — Prosessin sisäinen palvelin selaininstanssien manipulointiin etä-Firefox-kehittäjätyökaluasiakkaan kautta.
    • fonts — Koodi fonttien ja tekstin muotoilun käsittelyyn.
    • layout — Muuntaa sivun sisällön sijoitetuiksi, tyylitetyiksi laatikoiksi ja välittää tuloksen rendererille.
    • layout_thread — Ajaa layout-säieitä, viestii script-säieen kanssa ja kutsuu layout-cratea layoutin suorittamiseksi.
    • msg — Jaetut API:t viestintään tiettyjen säieiden ja cratejen välillä.
    • net — Verkkoprotokollien toteutukset sekä tilan ja resurssien hallinta (välimuisti, evästeet jne.).
    • plugins — Syntaksilaajennukset, mukautetut attribuutit ja lintit.
    • profile — Muistin ja ajan profilointityökalut.
    • script — DOM:n toteutus (natiivi Rust-koodi ja bindings SpiderMonkeyhin).
    • script_bindings - Tukikoodi ja WebIDL-tiedostoista generoidut bindings. Bindings koostuvat trait:eista, jotka edustavat WebIDL-rajapintoja, ja liimakoodista SpiderMonkey JavaScript -moottorille. Varsinaiset trait-toteutukset sijaitsevat script-crate:ssa. Nämä on jaettu kahteen crateen inkrementaalisten käännösten nopeuttamiseksi.
    • script_layout_interface — API, jonka script-crate tarjoaa layout-cratelle.
    • selectors — CSS-selektorien täsmäytys.
    • servo — Entry pointit servo-sovellukselle ja libservo-upotuskirjastolle.
    • shared — Jaetut trait:t/koodi, joita useat komponentit käyttävät ilman riippuvuutta pääcrateen käännösnopeussyistä.
    • style — API:t CSS:n jäsentämiseen ja tyylitiedostojen ja tyylitettyjen elementtien käsittelyyn.
    • util — Sekalaisia apumetodeja ja -tyyppejä, joita käytetään laajasti projektissa.
    • webdriver_server — Prosessin sisäinen palvelin selaininstanssien manipulointiin WebDriver-asiakkaan kautta.
    • webgpu — WebGPU API:n säieiden toteutus.
  • etc — Hyödyllisiä työkaluja ja skriptejä kehittäjille.
  • ports
    • servoshell — Esimerkkiselain, joka käyttää servoa.
  • python
    • mach — Komentorivityökalu kehittäjätehtävien helpottamiseen.
    • servo — Servo-spesifisten mach-komentojen toteutukset.
    • tidy — Python-paketti koodilinteistä, jotka ajetaan automaattisesti ennen muutosten yhdistämistä.
  • resources — Ajonaikaiset tiedostot. Ne täytyy jotenkin sisällyttää, kun binäärikäännöksiä jaetaan.
  • support
    • android — Kirjastot, jotka vaativat erityiskäsittelyä Android-alustoille kääntäessä
  • target
    • debug./mach build --debug -komennolla generoidut käännösartefaktit.
    • doc — Dokumentaatio generoidaan tänne rustdoc-työkalulla ajettaessa ./mach doc
    • release./mach build --release -komennolla generoidut käännösartefaktit.
  • tests
    • dromaeo — Harness Dromaeo-testisarjan automaattiseen ajoon.
    • html — Manuaaliset testit ja kokeilut.
    • jquery — Harness jQuery-testisarjan automaattiseen ajoon.
    • power — Työkalut virrankulutuksen mittaamiseen.
    • unit — Yksikkötestit rustc:n sisäänrakennetulla test harnessilla.
    • wpt — W3C web-platform-tests ja csswg-tests työkaluineen niiden ajamiseen ja odotettuihin epäonnistumisiin.

Repositoriot

Servo-projekti ylläpitää useita repositorioita, jotka joko julkaistaan Servosta riippumatta tai on forkattu upstream-projektista.

Laajasti käytetty Rust-ekosysteemissä

Forkit

  • mozjs: Servon fork SpiderMonkeysta ja Rust-bindingsista
  • stylo: Servon CSS-toteutus säännöllisellä synkronoinnilla upstream-versioon Gecko-repositoriossa
  • webrender: Firefoxin WebRenderin fork pienillä Servo-spesifisillä muutoksilla

Servo-sisäiset

  • book: Tämä kirja!
  • ci-runners: Skriptit ja työkalut Servon CI:lle (continuous integration)
  • malloc_size_of: Arvojen ajonaikaisen koon mittaus
  • media: Mediat backend, jota Servo käyttää, tällä hetkellä vain GStreamer
  • servo: Päärepositorio Servo web platform -moottorille
  • surfman: Matalan tason cross-platform Rust-kirjasto graafisten pintojen hallintaan
  • wpt: Servon fork Web Platform Testsistä