Servo 平行化瀏覽器引擎專案

Servo 是一款專為應用軟體和嵌入式應用而設計的現代化的高效能瀏覽器引擎


此專案由 Mozilla 贊助,並以全新的系統級程式語言 Rust 編寫,Servo 專案旨在實現更好的平行化、安全性、模組化以及高效能。

servo.org rendered with Servo 本頁在 2016 年 7 月 3 日在 Servo 中的截圖

Servo 由 Mozilla Research 創立,專案目前由全球的社群一起建構。其中有個人貢獻者,也不乏 Mozilla 、Samsung 這樣的公司。

Servo 目前支援 Linux、macOS、Windows 和 Android。

入門

系統需求

您要在 我們的 GitHub 上 找到您需要在您的特定系統上安裝的套件。

編譯

Servo 是由 Cargo(Rust 的套件管理程式)編譯的。 我們還使用 Mozilla 的 Mach 工具來編譯和執行其他任務。

一般編譯

在開發模式下編譯 Servo。 這對開發很有幫助,但生成的二進位制檔案極慢。


git clone https://github.com/servo/servo
cd servo
./mach build --dev
./mach run tests/html/about-mozilla.html
                

要進行標準測試、效能測試或真實使用,請新增 --release 標誌以建立優化版本:


./mach build --release
./mach run --release tests/html/about-mozilla.html
                

執行

使用 ./mach run [url] 執行 Servo。

命令列參數

  • -p INTERVAL 開啟分析器並且每隔 INTERVAL 秒將資訊轉儲到控制台
  • -s SIZE 設定繪畫模組大小(預設值:512)
  • -z 禁用所有圖形輸出,用於執行 JS 或佈局測試

貢獻

Servo 專案鼓勵有經驗的和新的開發者來貢獻。 檢視頁面底部的連結以瞭解更多資訊。為了 Servo 的蓬勃發展,一起加入全球數以百計貢獻者團隊吧!

對 Servo 或其依賴關係的貢獻應該用 GitHub Pull Request 的形式提交。 每個 pull 請求將由核心貢獻者(有許可權修補程式的人員)審核,合併到主分支中;或給予回饋,以便知道如何更改。 所有貢獻應遵循此形式,包括來自核心貢獻者的貢獻。

如果您希望處理某個問題,請首先透過 GitHub issue 宣告您要在此事項上進行工作,此舉是為了防止在同一問題上貢獻者們重覆到。

如果您在找那些對於初學者來說比較好上手的漏洞,請檢視 GitHub 上 E-Easy 的 issue 標籤

有關如何開始修改 Servo 的詳細資訊,請參閱 HACKING_QUICKSTART.md

Pull Request 檢查清單

  • 請從 master 開分支,請在提交 Pull Request 之前 rebase 到當前 master。如果它不能與 master 完全合併,您可能會被要求退回您的更改。
  • 請不要將子模組更新放在您的 Pull Request 中,除非它們對 PR 有所影響。
  • 如果您的補丁沒有得到審核,或者您需要特定的人來審核, 您可以 @ 請求審核人員在 pull 請求或評論中要求審核, 您也可以在 irc.mozilla.org的 #servo 上要求審核 。 如需中文服務請聯絡: KiChjangshinglyu
  • 為新功能或修復錯誤新增相關測試。DOM 的修改通常需要一個 Web 平臺測試;版面佈局的修改需要一個 reftest。有關詳細資訊,請參閱 測試指南
  • 有關特定的 git 指令,請參閱 GitHub 工作流程 101
開始貢獻

聯絡我們

Servo 的貢獻者經常在 irc.mozilla.org. 的 #servo 頻道。您也可以加入 dev-servo 郵件列表

行為守則

我們遵循 Rust 的行為守則。

其他本土化頁面: English, 简体中文