Ladybird: 独自のエンジンを備えた真に独立したブラウザ

最終更新: 30/09/2025
  • 独立したタブを備えた独自の Web エンジンとマルチプロセス アーキテクチャ。
  • SerenityOS からのレガシー ベースとサードパーティ ライブラリの選択的な使用。
  • との互換性 Linux、macOSおよび Windows (WSL2 経由)、およびアクティブなドキュメント。
  • 貢献、問題の報告、および 2 条項 BSD ライセンスに関する明確なガイドライン。

テントウムシ

レディバードプロジェクトは、今日ではほとんどの人が挑戦できない課題に取り組んでいます。 ゼロから独自のエンジンを開発他のブラウザのコアを再利用することなく、Blink、WebKit、Geckoに依存せず、最新のウェブ標準を尊重した独立した実装を追求しています。 時間、何も見逃すことなく閲覧に十分使用できます。

このアプローチには、非常に具体的なアーキテクチャと開発上の決定が伴います。一方では、レンダリング、画像デコード、ネットワーク接続といった重要なタスクを分離するマルチプロセス構造を優先し、他方では、共通機能については、従来のプロプライエタリライブラリとサードパーティ製コンポーネントを合理的に組み合わせるという選択がなされました。全体として、目標は 「本物の」完全に独立したブラウザを構築する他のエンジンの作業をラップするものではありません。

レディバードとは何ですか?なぜ違うのですか?

Ladybirdウェブブラウザ

レディバードは他の技術を覆い隠すようなものではありません。 革新的なウェブエンジン 互換性と堅牢性を目指し、標準規格に準拠して実装されています。一般的なエンジンのコードを借用しないという決定は、厳格な基準を設定すると同時に、HTMLとCSSの解析からJavaScriptの実行、DOM管理まで、システムのあらゆるレイヤーを完全に制御することを可能にします。

このプロジェクトは、独自のエンジンへのコミットメントに加え、将来的に他のエンジンを採用しないことを強調しています。これは単なる意思表示ではなく、実際には、レディバードの進化は独自のエンジンにかかっていることを意味します。 各Web仕様を実装および最適化する能力 セキュリティとパフォーマンスを向上させるアーキテクチャ。容易な道ではありませんが、真の独立性を保証する道です。

チームは、ブラウザを単なる技術デモの域を超え、スムーズなインターフェース、タブの独立性、そしてメディア再生、スクリプト実行、複雑なページのレンダリングのための強固な基盤を備えた、日常的に使える完全なアプリケーションを提供することを目指しています。 信頼性その目標を掲げ、 標準規格の継続的な見直しと実世界テスト 作業の中心的な部分であり、ユーザー機能も同様です。 ブラウザのブックマーク同期 毎日の使用を容易にします。

SerenityOSとの関係とプロジェクトの進化

歴史的に、LadybirdはSerenityOSとDNAを共有してきました。SerenityOSは、​​ほぼすべてをゼロから開発することに重点を置いたシステムです。この伝統のおかげで、Ladybirdは現在、SerenityOSのエコシステムからいくつかのライブラリを使用しており、ウェブレンダリング、JavaScript実行、プロセス間通信といった面で急速な進歩を遂げてきました。分離(フォーク)が進行中であるため、Ladybirdは もはや「すべてをゼロから」という哲学に縛られていない そして、その差別化価値ではない一般的なタスクのためにサードパーティのライブラリに公開されています。

この実用的な変更は、エンジンとしての独立性と矛盾するものではありません。画像、音声、動画フォーマット、暗号化、グラフィックスといった分野において、統合する価値のある成熟したコンポーネントが存在することを認識しているだけです。実際、このプロジェクトではすでにいくつかのコンポーネントが利用されています。 同じ外部ライブラリ 他の既存のブラウザが使用するものをベースにし、Web エンジンのコア部分には自家製の構造を採用しています。

  SolidWorks と AutoCAD: 各タイプのユーザーにとっての長所、短所、および違いに関する決定的な比較。

SerenityOSのコンポーネントの中には 現在、レディバード基地の一部を構成しているものは以下のとおりで、それぞれがパズルの重要なピースをカバーしています。

  • LibWeb: Web レンダリング エンジン。
  • LibJS: JavaScript エンジン。
  • LibWasm: WebAssembly 実装。
  • LibCrypto/LibTLS: 暗号化プリミティブとトランスポート セキュリティ (TLS)。
  • LibHTTP: HTTP/1.1 クライアント。
  • LibGfx: 2D グラフィックス ライブラリ、画像のデコードとレンダリング。
  • LibUnicode: Unicode とロケールのサポート。
  • LibMedia: オーディオとビデオの再生。
  • LibCore: イベント ループとオペレーティング システム抽象化レイヤー。
  • LibIPC: プロセス間通信。

より独立したプロジェクトへの移行によってこれらの基盤が消滅するわけではありませんが、サードパーティ製ライブラリを統合する適切な箇所をケースバイケースで評価することが可能になります。そのため、メディアフォーマット、暗号化、グラフィックスといった分野では、実績のあるソリューションが提供する互換性とセキュリティを優先し、チームは以下の点に注力します。 エンジンの心臓部と規格への準拠.

マルチプロセスアーキテクチャとセキュリティ

Ladybirdは最初からマルチプロセスアーキテクチャを採用しています。ユーザーエクスペリエンスを調整し、複数のWebコンテンツレンダリングプロセスと連携するメインインターフェース(UI)プロセスがあります。各タブは独自のレンダラープロセスで実行されるため、分離性、安定性、信頼性が向上します。 セキュリティこの設計のおかげで、1つのページでエラーが発生しても他のページに影響はなく、ブラウザは タブごとにサンドボックスを適用する.

レンダリングプロセスに加えて、機密性の高いタスク専用のプロセスも存在します。1つは画像のデコード(ImageDecoder)を、もう1つはネットワークトラフィック(RequestServer)を処理します。これらの機能をメインプロセスの外部で実行することで、Ladybirdは攻撃対象領域を縮小し、攻撃に対する堅牢性を向上させます。 悪意のあるコンテンツ画像のデコードやHTTPレスポンスの処理における脆弱性は、 システムの残りの部分またはブラウザ全体.

この責任分離のアプローチはパフォーマンスも向上させます。オペレーティングシステムはプロセスを独立してスケジュールできるため、高負荷を分離し、メインスレッドからのブロックを回避できます。実際には、これによりインターフェースの応答性が向上し、特定のタブやサイトの動作に問題が発生した場合の回復力が向上します。このように、マルチプロセスアーキテクチャは 信頼性と持続的なパフォーマンスの柱.

サポートされているプラ​​ットフォームとユーザーエクスペリエンス

レディバードブラウザ

サポートされているシステムに関しては、Ladybird は WSL2 を使用する Linux、macOS、Windows のほか、他のオペレーティング システムでも動作します。 Unixのこのプラットフォームの多様性は、開発者やユーザーが普段使っている環境でプロジェクトをテストしたい場合、参入障壁をなくすため重要です。デスクトップ版Linuxで作業する場合でも、ノートパソコンでmacOSを使用する場合でも、Linuxサブシステムを搭載したWindowsで開発する場合でも、 Ladybird を実行して評価する 過度な合併症なしに。

ユーザーエクスペリエンスは、インターフェースとコンテンツプロセスの分離に基づいています。これにより、複雑なサイトがCPUやメモリを大量に消費する場合でも、メインウィンドウはスムーズに動作します。同時に、このプロジェクトは現代のWebにとって「使いやすい」状態を実現することを目指しており、そのためにはエンジンの改良、標準サポートの拡張、メディア再生、フォント処理、レイアウト、実行の最適化が必要です。 集中的なJavaScriptその経験の一部には、次のような厄介な要素を管理することが含まれます。 ポップアップ広告 ナビゲーションに影響します。

  CTG ファイル:それは何か、使用方法、それらを開くプログラム

プロジェクトの構築と編集

Ladybirdを自分でビルドしたい場合は、プロジェクトのビルド手順を参照してください。そこには、環境の準備、各種コンポーネントのコンパイル、そして ブラウザを実行するこれは、いくつかのオーケストレーションされた部分 (UI、レンダラー、イメージ デコーダー、リクエスト サーバー) を備えた独自のエンジンであるため、すべてが適切に機能するように、これらのガイドラインに従うことが重要です。

同時に、共通機能(画像、音声、動画フォーマット、暗号化、グラフィックスなど)にサードパーティ製ライブラリを利用することで、一般的なユースケースのサポートが簡素化され、車輪の再発明を回避できます。このバランスが鍵となります。エンジンの独立性は維持しつつ、ナビゲーションを最初から実行可能にする補助技術のサポートが加速されます。期待される結果は、 合理的な設置曲線 そしてより強固な技術基盤。

コードドキュメントとリソース

コード関連のドキュメントは、リポジトリのドキュメントフォルダに集約されています。コンポーネント、内部フロー、規約、その他プロジェクトの構造を理解し、変更を加えるために必要な詳細が記載されています。プロジェクトに初めて参加する場合は、この資料を確認して全体像を把握することをお勧めします。 ブラウザレイヤーとその相互作用.

コミュニティのコミュニケーションはDiscordサーバーを中心に行われ、技術的な決定事項の議論、質問への回答、そして様々な取り組みの調整が行われています。Discordサーバーに参加することで、開発の優先事項を直接把握し、アドバイスを求め、改善を提案することができます。コアエンジンのコーディング担当者とブラウザのテスト担当者、バグ報告、提案を行う担当者の両方にとって、Discordは有益な交流の場となっています。 新機能.

貢献を始める方法と課題のルール

初めての貢献の場合は、「貢献を始める」ガイドを読むことをお勧めします。このドキュメントでは、環境の準備方法、従うべきコードスタイル、パッチの整理方法、そして貢献の品質に対する期待について説明しています。このガイドから始めることで、時間を節約し、チームが定めた基準に沿って変更がレビューされ、承認されるのを早めることができます。 日常生活に当てはまる.

問題を報告する前に、プロジェクトでは問題ポリシーと詳細なバグ報告ガイドラインを確認するようお願いしています。これにより、報告に十分な情報(再現手順、環境、関連ログ)が含まれていること、そして既存のリクエストが重複していないことが保証されます。これらの基準を遵守することで、ノイズが削減され、チームの対応が最適化され、真のバグやその他の問題に集中できるようになります。 最も緊急の優先事項.

より広範な変更については、完全な貢献ガイドラインがファイルに記載されています。 CONTRIBUTING.md。これらのガイドラインは、レビュープロセス、コミットの構造化方法、統合における基準、ブランチの衝突や重複作業を回避するための調整方法を規定しています。これらのガイドラインに従うことが、貢献を加速させ、一貫性を維持するための最も効果的な方法です。 リポジトリの品質.

サードパーティライブラリの使用:目的意識を持った実用主義

SerenityOSから独立したプロジェクトとして分離した後、Ladybirdはサードパーティ製ライブラリを、最も付加価値の高い部分に自由に組み込むことができました。画像形式のデコード(PNG、JPEGなど)、オーディオおよびビデオコンテナ、最新の暗号化、グラフィックスAPIといった分野では、オープンソースコミュニティが実績のあるコンポーネントを提供しています。これらのコンポーネントを統合することで、独自エンジンを構築するという目標が損なわれることはありません。むしろ、その適切な実装に労力の大部分を費やすことができるのです。 HTML、CSS、JavaScript、WebAssembly.

  Illustrator で点線のストロークを作成する方法: 8 つの簡単なステップ

チームは、既に他のブラウザで使用されているライブラリの一部を使用していることも認めています。これは良いことです。標準が明確で、成熟した基盤を追加することが理にかなっている分野で、両者は共に戦っているからです。Ladybirdはエンジンを他のものに置き換えることはないという約束は変わりません。コアの独立性はプロジェクトの特長であり、サードパーティのリソースの使用は、そのミッションを弱めることなく補完するものに限定されています。これは、 技術的な野心と実用主義.

目標: 現代のウェブのための完全なブラウザ

展望は決して平坦ではありません。それは、完全で使いやすいブラウザを構築することです。つまり、大量のスクリプトを含むサイトでのパフォーマンス、複雑なフォントやタイポグラフィのサポート、最新の仕様に準拠したレイアウト、信頼性の高いオーディオとビデオの再生、そして負荷がかかった状態での安定した動作が求められます。これを実現するために、Ladybirdはマルチプロセスアーキテクチャと、常に次の点に注力しています。 ウェブ標準への準拠.

並行して、テストプロセス、コミュニティからのフィードバック、そして構造化された問題報告は、ボトルネック、互換性のギャップ、あるいは回帰を検出するのに役立ちます。独自のエンジンを持つことにより、それぞれの進歩は差別化要因、つまり各要素がどのように、そしてなぜ実装されているかという内部知識を統合します。最終的には、これは他のエンジンのペースや決定に依存せずに革新を続けられるプラットフォームへとつながり、 自律ロードマップ.

ライセンスとプロジェクトの哲学

Ladybirdは2条項BSDライセンスの下でリリースされています。この選択により、ブラウザ自体、あるいはそのスタックの一部を、異なるライセンスモデルのプロジェクトに統合することが可能になります。オープン性、エンジンの独立性、そしてDiscordでの議論やリポジトリ内のドキュメントを共有する活発なコミュニティの組み合わせにより、不要な摩擦なく貢献したい人にとってやりやすい環境が生まれています。コアコントロール、標準への準拠、そしてセキュリティに対する明確なスタンスを重視するプロジェクトを重視するなら、ぜひご検討ください。 このライセンスは非常に適しています.

Ladybirdの道のりは最短ではありませんが、長期的には最も自由度の高いものとなります。ゼロから設計されたエンジン、重要なプロセスを分離したアーキテクチャ、追加作業のための外部ライブラリのインテリジェントな活用、そして明確な貢献ルールは、このプロジェクトに明確な道筋を示しています。試してみたい方は、ドキュメントを確認し、コンパイル手順を確認し、プロジェクトのDiscordに参加してください。そこでは質問に答えたり、アイデアを提案したり、このプロジェクトがどのように進化しているかを直接確認することができます。 真に独立したブラウザ.

ブラウザを最適化してRAM使用量を減らす方法
関連記事
ブラウザを最適化してRAM使用量を減らす方法