ttf-parser 0.5 - in nije bibleteek foar wurkjen mei TrueType-lettertypen

ttf-parser is in bibleteek foar it parsearjen fan TrueType/OpenType-lettertypen.
De nije ferzje hat folsleine stipe foar fariabele lettertypen
(fariabele lettertypen) en C API, as gefolch wêrfan ik besleat om it te advertearjen yn 'e lear.

Oant koartlyn, as der ferlet wie om te wurkjen mei TrueType-lettertypen, wiene d'r krekt twa opsjes: FreeType en stb_truetype. De earste is in enoarme kombinaasje, de twadde stipet in frij lyts oantal funksjes.

ttf-parser is earne yn it midden. It stipet allegear deselde TrueType-tabellen (it TrueType-formaat bestiet út in protte aparte binêre tabellen) as FreeType, mar tekenet de glyphs sels net.

Tagelyk befettet ttf-parser in protte oare wichtige ferskillen:

  1. ttf-parser is skreaun yn Rust sûnder ûnfeilich te brûken. FreeType en stb_truetype wurde skreaun yn C.
  2. ttf-parser is de ienige ûnthâld-feilige ymplemintaasje. It lêzen fan willekeurige ûnthâld is net mooglik. Kwetsberheden wurde hieltyd fêst yn FreeType, en stb_truetype is, yn prinsipe, net ûntwurpen om te lêzen willekeurige lettertypen.
  3. ttf-parser is de ienige thread-feilige ymplemintaasje. Alle parsearmetoaden binne konstant. De ienige útsûndering is it ynstellen fan koördinaten foar fariabele lettertypen, mar dizze funksje is reentrant. FreeType is yn prinsipe single-threaded. stb_truetype - reentrant (jo kinne yndividuele kopyen brûke yn ferskate diskusjes, mar net ien fan in protte).
  4. ttf-parser is de ienige ymplemintaasje dy't gjin heap-allokaasjes brûkt. Hjirmei kinne jo it parsearjen fersnelle en problemen mei OOM foarkomme.
  5. Ek wurde hast alle rekkenoperaasjes en konversaasjes fan numerike typen kontrolearre (ynklusyf statysk).
  6. Yn it slimste gefal kin de biblioteek in útsûndering smyt. Yn dit gefal, yn 'e C API, sille útsûnderings wurde fongen en de funksje sil in flater weromjaan, mar sil net crashe.

En nettsjinsteande alle feiligens garânsjes, ttf-parser is ek de fluchste ymplemintaasje. Bygelyks, it parsearjen fan CFF2 is 3.5 kear flugger as FreeType. It parsearjen fan glyf is yntusken 10% stadiger as yn stb_truetype, mar dit komt troch it feit dat it gjin fariabele lettertypen stipet, wêrfan de ymplemintaasje ekstra opslach fereasket. ynformaasje. Mear details yn README.

Boarne: linux.org.ru

Keapje betroubere hosting foar siden mei DDoS-beskerming, VPS VDS-tsjinners 🔥 Keapje betroubere websidehosting mei DDoS-beskerming, VPS VDS-tsjinners | ProHoster