ttf-parser 0.5 - perpustakaan anyar kanggo nggarap font TrueType

ttf-parser punika perpustakaan kanggo parsing TrueType / OpenType fonts.
Versi anyar nduweni dhukungan lengkap kanggo font variabel
(font variabel) lan C API, minangka asil saka aku mutusaké kanggo Panggenan ing lore.

Nganti saiki, yen ana kabutuhan kanggo nggarap font TrueType, ana rong pilihan: FreeType lan stb_truetype. Kapisan minangka gabungan gedhe, sing nomer loro ndhukung fungsi sing cukup cilik.

ttf-parser nang endi wae ing tengah. Ndhukung kabeh tabel TrueType padha (format TrueType kasusun saka akeh tabel binar kapisah) minangka FreeType, nanging ora nggambar glyphs piyambak.

Ing wektu sing padha, ttf-parser ngemot akeh beda sing signifikan:

  1. ttf-parser ditulis ing Rust tanpa nggunakake aman. FreeType lan stb_truetype ditulis ing C.
  2. ttf-parser mung implementasine memori-aman. Maca memori acak ora bisa. Kerentanan terus-terusan didandani ing FreeType, lan stb_truetype, ing prinsip, ora dirancang kanggo maca font sing sewenang-wenang.
  3. ttf-parser mung implementasine aman thread. Kabeh cara parsing tetep. Istiméwa mung nyetel koordinat kanggo font variabel, nanging fungsi iki reentrant. FreeType Sejatine siji-Utas. stb_truetype - reentrant (sampeyan bisa nggunakake salinan individu ing thread beda, nanging ora siji saka akeh).
  4. ttf-parser minangka siji-sijine implementasine sing ora nggunakake alokasi tumpukan. Iki ngidini sampeyan nyepetake parsing lan ngindhari masalah karo OOM.
  5. Uga, meh kabeh operasi aritmetika lan konversi jinis numerik dicenthang (kalebu statis).
  6. Ing kasus paling awon, perpustakaan bisa mbuwang pangecualian. Ing kasus iki, ing C API, pangecualian bakal kejiret lan fungsi bakal bali kesalahan, nanging ora bakal nabrak.

Lan sanajan kabeh jaminan keamanan, ttf-parser uga minangka implementasine paling cepet. Contone, parsing CFF2 3.5 kaping luwih cepet tinimbang FreeType. Parsing glyf, Kangge, punika 10% luwih alon tinimbang ing stb_truetype, nanging iki amarga kasunyatan sing ora ndhukung fonts variabel, implementasine sing mbutuhake nyimpen tambahan. informasi. Rincian liyane ing README.

Source: linux.org.ru

Add a comment