ttf-parser 0.5 — új könyvtár a TrueType betűtípusok kezelésére

ttf-parser — ez a könyvtár a TrueType/OpenType betűtípusok elemzésére szolgál.
Az új verzióban teljes körű támogatást kapott a változó betűtípusokhoz.
(változó betűtípusok) és C API, emiatt úgy döntöttem, hogy hirdetem a loren.

Egészen nemrégig, ha TrueType betűtípusokkal kívántunk dolgozni, két lehetőség állt rendelkezésre: a FreeType és a stb_truetype. Az első egy hatalmas kombájn, a második viszont meglehetősen korlátozott funkcionalitást kínál.

A ttf-parser valahol a kettő között helyezkedik el. Támogatja az összes olyan TrueType táblázatot (a TrueType formátum rengeteg különálló bináris táblázatból áll), mint a FreeType, de nem foglalkozik a glyphok kirajzolásával.

Emellett a ttf-parser számos más lényeges eltérést is tartalmaz:

  1. A ttf-parser Rust nyelven készült, unsafe használata nélkül. A FreeType és a stb_truetype C nyelven íródott.
  2. A ttf-parser az egyetlen biztonságos (memory-safe) megvalósítás. Véletlenszerű memória olvasása lehetetlen. A FreeType folyamatosan javít a sebezhetőségeken, míg a stb_truetype alapvetően nem a véletlenszerű betűtípusok olvasására van szánva.
  3. A ttf-parser az egyetlen szálbiztos megvalósítás. Minden elemzési módszer állandó. Az egyetlen kivétel a változó betűtípusok koordinátáinak megadása, de ez a funkció reentrantes. A FreeType alapvetően egy szálú. A stb_truetype — reentrant (külön másolatok használhatók külön szálakon, de nem egy több szálon).
  4. A ttf-parser az egyetlen megvalósítás, amely nem használ „heap” allokációt. Ez felgyorsítja az elemzést és elkerüli az OOM problémákat.
  5. Szintén szinte minden matematikai műveletet és numerikus típusok átkonvertálását ellenőrzik (beleértve a statikus ellenőrzést is).
  6. A legrosszabb esetben a könyvtár generálhat kivételt. Ezenkívül a C API-ban a kivételeket elkapják, és a függvény hibát ad vissza, de nem omlik össze.

És minden biztonsági garancia ellenére a ttf-parser a leggyorsabb megvalósítás is. Például a CFF2 elemzése 3,5-szer gyorsabb, mint a FreeType. A glyf elemzése ugyanakkor 10%-kal lassabb az stb_truetype-hoz képest, de ezt az okozza, hogy nem támogatja a változó betűtípusokat, amelyek megvalósításához kiegészítő információt kell tárolni. További részletek itt: README.

Forrás: linux.org.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster