Servo, 並列ブラウザエンジンプロジェクト

Servoはアプリケーションおよび組込みシステムで使用する為に設計された 高性能かつ最新のブラウザエンジンです。


Mozillaの支援、および新しいシステムプログラミング言語Rustに より記述されたServoは、並列処理、セキュリティー、モジュール化、性能向上を目標としたプロジェクトです。

Servoのnightly buildをダウンロードする

servo.org rendered with Servo 2016年7月3日にServoでレンダリングされたページの例

Mozilla Researchによって始まったServoプロジェクトは 個人およびMozillaやサムスンといった企業を含む全世界的なコミュニティによって開発されています。

Servoは 現在 Linux、 macOS、 Windows、 Androidをサポートしています。

始める

インストール要件

このページに 特定のシステムにインストールするために必要な要件が書かれています。

ビルド

ServoはRustのパッケージマネージャーであるCargoでビルドされています。 また、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

実行

このコマンドを用いてServoを実行する事ができます。./mach run [url]

コマンド オプション

  • -p INTERVAL プロファイラーを有効にして毎INTERVAL秒にコンソールにダンプを出力します。
  • -s SIZE ウィンドウのサイズを設定します。 デフォルト値は512です。
  • -z 全てのグラフィック出力を無効化します。 JSテストやレイアウトのテストで使用します。

開発に参加する

Servoプロジェクトは、経験が豊富な開発者から初心者まで、多くの皆さんによる開発への参加を歓迎しています。 Servoをさらに良いものにする為に、全世界で数百人の開発者が一緒に開発に取り組んでいます。 この取り組みに参加するにはページの末尾に記載されたリンクを参照してください。

Servoの開発やServoの依存するモジュールの更新はGitHubのプルリクエストを通じて行われています。 各プルリクエストはコアコントリビュータ(パッチをmergeする権限のある人)によって必要事項についてフィードバックがなされた後、メインツリーにmergeされます。 開発への貢献は全て、このプルリクエストの形式に従う必要があります。これはコアコントリビュータに関しても同様です。

何か問題を解決したい場合、まずGitHub Issueに問題・意見を登録してください。 これにより同じ問題に対しての重複した努力を避けることができます。

もし簡単なバグを探しているのならGitHubの E-Easy ラベルを 見て下さい。

Servoに関する作業を始める方法については HACKING_QUICKSTART.md を参考にして下さい

プルリクエストのチェックリスト

  • masterブランチから新たにブランチを生成して、 必要な場合、プルリクエストを出す前に現在のmasterブランチの上にgit rebaseして下さい。 masterにmergeできない場合、プルリクエストの内容のrebaseを求めるメッセージが表示されることがあります。
  • submoduleの変更が必要な場合、それらに変更が投入されるまで、submoduleを更新するプルリクエストを出すのを控えてください。
  • あなたのパッチがなかなかレビューされなかったり、レビューに特定のレビュワーが必要な場合、 プルリクエストのコメントやIRCチャンネルでレビューを求めることができます。
  • 修正されたバグや新しい機能に関連したテストを追加して下さい。 DOMに関する変更の場合、web platform test (layout、reftest)に追加することが多いでしょう。 詳しい内容は テストガイド を参考にして下さい。
  • 詳しいGitのコマンドは GitHub ワークフロー を参考にして下さい。
開発を始める

コミュニケーション

Servoの開発者の間では irc.mozilla.orgの#servoチャンネルが活発に使用されています。 また、開発メーリングリストでも議論が行われており、自由に参加できます。

行動規範

私たちは Rustの行動規範に 従います