ttf-parser 0.5 - TrueType フォントを扱うための新しいライブラリ

ttf-パーサー TrueType/OpenType フォントを解析するためのライブラリです。
新しいバージョンでは可変フォントが完全にサポートされています
(可変フォント) と C API を検討した結果、伝承で宣伝することにしました。

最近まで、TrueType フォントを使用する必要がある場合、FreeType と stb_truetype の XNUMX つのオプションがありました。 XNUMX つ目は巨大なコンバインで、XNUMX つ目はかなり少数の機能をサポートします。

ttf-parser はその中間にあります。 FreeType と同じ TrueType テーブル (TrueType 形式は多くの個別のバイナリ テーブルで構成されます) をすべてサポートしますが、グリフ自体は描画しません。

同時に、ttf-parser には他にも多くの重要な違いがあります。

  1. ttf-parser は unsafe を使用せずに Rust で書かれています。 FreeType と stb_truetype は C で書かれています。
  2. ttf-parser は唯一のメモリセーフな実装です。 ランダムメモリの読み取りはできません。 FreeType では脆弱性が常に修正されており、stb_truetype は原則として任意のフォントを読み込むように設計されていません。
  3. ttf-parser は唯一のスレッドセーフな実装です。 すべての解析方法は一定です。 唯一の例外は可変フォントの座標の設定ですが、この関数は再入可能です。 FreeType は基本的にシングルスレッドです。 stb_truetype - 再入可能 (個別のコピーを異なるスレッドで使用できますが、多数の XNUMX つを使用することはできません)。
  4. ttf-parser は、ヒープ割り当てを使用しない唯一の実装です。 これにより、解析を高速化し、OOM の問題を回避できます。
  5. また、ほぼすべての算術演算と数値型の変換が (静的を含む) チェックされます。
  6. 最悪の場合、ライブラリは例外をスローする可能性があります。 この場合、C API では例外がキャッチされ、関数はエラーを返しますが、クラッシュはしません。

また、セキュリティがすべて保証されているにもかかわらず、ttf-parser は最速の実装でもあります。 たとえば、CFF2 の解析は FreeType より 3.5 倍高速です。 一方、glyf の解析は stb_truetype よりも 10% 遅くなりますが、これは可変フォントをサポートしていないためであり、その実装には追加の保存が必要です。 情報。 詳細については、 README.

出所: linux.org.ru

コメントを追加します