Lexbor - オープンソースのHTMLレンダラーライブラリ
(github.com/lexbor)- 新しいブラウザエンジンを開発するプロジェクト
- 既存のブラウザエンジンはC++で開発されており、大きく、遅く、柔軟性に欠けるという問題がある
- LexborはCで開発されており、移植性、モジュール化、速度、独立性、標準準拠などを目標としている
- Lexborの主な特徴:
- HTML、CSS、Encoding、URL、Punycode、Unicodeなど多様なモジュールで構成されている
- 各モジュールを独立したライブラリとして利用可能
- 外部依存がない
- さまざまなプラットフォームへ容易に移植できる
- C99をサポートし、非常に高速である
- HTMLモジュールの特徴:
- HTML5仕様に完全準拠している
- 要素と属性を操作する機能を提供
- 断片化されたHTMLのパースをサポート (
innerHTML) - チャンク単位のパースをサポート
- 2億件以上の実際のHTMLページでテストされている
DocumentとParserの2種類のパース方式を提供- エンコーディング自動判別機能
- タグ属性と
<style>タグ内のCSSスタイルをパースする機能
- CSSモジュールの特徴:
- CSS Syntaxモジュールに完全準拠している
- セレクタとスタイルシートツリー(CSSOM)をサポート
- LexborはCentOS、Debian、Fedora、RHEL、Ubuntuなど、さまざまなOS向けのバイナリパッケージを提供している
- macOSではHomebrewとMacPortsを通じてインストール可能
- ソースコードはCMakeを使ってビルド可能
liblexborはすべてのモジュールを含む単一ライブラリで、各モジュールごとにliblexbor-{module}ライブラリがある- Elixir、Crystal、Python、D、Rubyなど、さまざまな言語向けのバインディングとラッパーが存在する
4件のコメント
C++ が遅いからって c...
わあ…C++ が遅いなんて考えたこともなかったですが、そういう世界もまた別のものなんですね
すごいです
メイン画面に「既存のブラウザーエンジンはC++で開発されていて、大きくて遅く、柔軟性に欠ける問題がある…」までしか出てこなかったので…
何だよ、またRustか? と思ったんですが……Cでしたね……。
自分のメイン言語なのでうれしいですね…
C++ は C より遅いんですね…。
いや、いったい何で実装したから C++ なのに遅いって言われてるんだと思ったら、
C なんですね……