ttf-parser 0.5 — njĂ« bibliotekĂ« e re pĂ«r punĂ«n me fontet TrueType

ttf-parser — Ă«shtĂ« njĂ« bibliotekĂ« pĂ«r analizimin e fontĂ«ve TrueType/OpenType.
Në versionin e ri u paraqit një mbështetje e plotë për fontët variabël
(fontet variabël) dhe C API, për shkak të kësaj vendosa ta reklamoj në lore.

Derisa nuk kaloi shumë kohë, nëse kishte ndonjë nevojë për punë me fontet TrueType, ishin pikërisht dy opsione: FreeType dhe stb_truetype. E para është një kombinator i madh, e dyta mbështet një numër të vogël funksionesh.

ttf-parser është diku në mes. Mbështet të gjitha ato tabela TrueType (formati TrueType përbëhet nga shumë tabela binare individuale) që mbështetet edhe nga FreeType, por nuk merret me vizatimin e vetë glifëve.

Ndërkohë, ttf-parser përmban shumë dallime të tjera të rëndësishme:

  1. ttf-parser është shkruar në Rust pa përdorur unsafe. FreeType dhe stb_truetype janë të shkruara në C.
  2. ttf-parser është realizimi i vetmi i sigurt (memory-safe). Leximi i kujtesës së rastësishme është i pamundur. Në FreeType vazhdimisht rregullohen vulnerabilitetet, ndërsa stb_truetype në parim nuk është i destinuar për leximin e fontëve të rastësishëm.
  3. ttf-parser Ă«shtĂ« realizimi i vetmi thread-safe. TĂ« gjitha metodat e analizimit janĂ« konstante. PĂ«rjashtimi i vetĂ«m Ă«shtĂ« caktimi i koordinatave pĂ«r fontet variabĂ«l, por kjo funksion Ă«shtĂ« reentrant. FreeType nĂ« parim Ă«shtĂ« njĂ« proces i vetĂ«m. stb_truetype — reentrant (mund tĂ« pĂ«rdoren kopje tĂ« veçanta nĂ« procese tĂ« ndryshme, por jo njĂ« nga shumĂ«).
  4. ttf-parser është realizimi i vetmi që nuk përdor alokimin në "gjallë". Kjo lejon të përshpejtojë analizimin dhe të shmangë probleme gjatë OOM.
  5. Gjithashtu, pothuajse të gjitha operacionet aritmetike dhe konvertimi i llojeve numerikë kontrollohen (përfshirë statikisht).
  6. Në rastin më të keq biblioteka mund të hedhë një përjashtim. Në këtë rast, në C API përjashtimet do të kapen dhe funksioni do të kthejë një gabim, por nuk do të bie.

Dhe megjithëse të gjitha garancitë e sigurisë, ttf-parser është gjithashtu realizimi më i shpejtë. Për shembull, analiza e CFF2 është 3.5 herë më e shpejtë se në FreeType. Analiza e glyf është 10% më e ngadalshëm se në stb_truetype, por kjo për shkak që nuk mbështet fontet variabël, për implementimin e së cilave kërkohet ruajtja e informacionit shtesë. Më shumë detaje në README.

Burimi: linux.org.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster