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

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

Derisa së fundmi, nëse kishte nevojë për punë me fontet TrueType, kishte vetëm dy opsione: FreeType dhe stb_truetype. E para është një mjet shumë i madh, e dyta mbështet një numër mjaft të vogël funksionesh.

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

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

  1. ttf-parser është shkruar në Rust pa përdorimin e unsafe. FreeType dhe stb_truetype janë shkruar në C.
  2. ttf-parser është realizimi i vetëm i sigurt (memory-safe). Leximi i memories së rastësishme nuk është i mundur. Në FreeType vazhdimisht rregullojnë dobësitë, ndërsa stb_truetype në parim nuk është i destinuar për të lexuar fontet e rastësishme.
  3. ttf-parser është realizimi i vetëm thread-safe. Të gjitha metodat e analizës janë konstante. Përjashtimi i vetëm është caktimi i koordinatave për fontet variabël, por kjo funksion është reentrant. FreeType në thelb është një njëpain. stb_truetype është reentrant (mund të përdorni kopje të veçanta në pika të ndryshme, por jo një nga shumë).
  4. ttf-parser Ă«shtĂ« realizimi i vetĂ«m qĂ« nuk pĂ«rdor alokimin nĂ« ‘merrĂ«n’. Kjo lejon tĂ« pĂ«rshpejtojĂ« analizĂ«n dhe tĂ« shmangĂ« problemet gjatĂ« OOM.
  5. Gjithashtu, pothuajse të gjitha operacionet aritmetike dhe konvertimet e tipeve numerikë kontrollohen (inkluzivisht statikisht).
  6. Në rastin më të keq, biblioteka mund të hedhë një përjashtim. Në këtë rast, në API-në C përjashtimet do të kapen dhe funksioni do të kthejë një gabim, por nuk do të bjerë.

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

Burimi: linux.org.ru

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster