ttf-parser 0.5 — nouă bibliotecă pentru lucrul cu fonturi TrueType

ttf-parser — este o bibliotecă pentru analiza fonturilor TrueType/OpenType.
Noua versiune include suport complet pentru fonturi variabile.
(fonturi variabile) și API C, motiv pentru care am decis să o promovez pe lor.

Până de curând, dacă era necesară lucrul cu fonturi TrueType, existau exact două opțiuni: FreeType și stb_truetype. Prima este un motor imens, iar a doua suportă un număr destul de limitat de funcții.

ttf-parser se află undeva la mijloc. Suportă toate aceleași tabele TrueType (formatul TrueType este compus din numeroase tabele binare separate) ca și FreeType, dar nu se ocupă cu redarea glyph-urilor.

În plus, ttf-parser conține multe alte diferențe semnificative:

  1. ttf-parser este scris în Rust, fără a folosi unsafe. FreeType și stb_truetype sunt scrise în C.
  2. ttf-parser este singura implementare sigură (memory-safe). Citirea memoriei arbitrare este imposibilă. FreeType corectează constant vulnerabilitățile, iar stb_truetype nu este destinat citirii fonturilor arbitrare.
  3. ttf-parser este singura implementare thread-safe. Toate metodele de analiză sunt constante. Singura excepție este stabilirea coordonatelor pentru fonturile variabile, dar această funcție este reentrantă. FreeType este de fapt single-threaded. stb_truetype — reentrant (poate folosi copii separate în fire diferite, dar nu una din mai multe).
  4. ttf-parser este singura implementare care nu utilizează alocarea în „heap”. Aceasta permite accelerarea analizei și evitarea problemelor în caz de OOM.
  5. De asemenea, aproape toate operațiile aritmetice și conversiile tipurilor numerice sunt verificate (inclusiv static).
  6. În cel mai rău caz, biblioteca poate arunca o excepție. În API C, excepțiile vor fi interceptate, iar funcția va returna o eroare, dar nu va cădea.

Și în ciuda tuturor garanțiilor de siguranță, ttf-parser este, de asemenea, cea mai rapidă implementare. De exemplu, analiza CFF2 este de 3.5 ori mai rapidă decât în FreeType. Analiza glyf este cu 10% mai lentă decât în stb_truetype, dar aceasta se datorează faptului că nu suportă fonturi variabile, pentru implementarea cărora este necesară stocarea unor informații suplimentare. Mai multe detalii în README.

Sursa: linux.org.ru

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster