ttf-parser 0.5 - ืกืคืจื™ื™ื” ื—ื“ืฉื” ืœืขื‘ื•ื“ื” ืขื ื’ื•ืคื ื™ TrueType

ืžื ืชื— ttf โ€” ื”ื™ื ืกืคืจื™ื™ื” ืœื ื™ืชื•ื— ื’ื•ืคื ื™ TrueType/OpenType.
ื”ื’ืจืกื” ื”ื—ื“ืฉื” ื›ื•ืœืœืช ื›ืขืช ืชืžื™ื›ื” ืžืœืื” ื‘ื’ื•ืคื ื™ื ืžืฉืชื ื™ื
(ื’ื•ืคื ื™ื ืžืฉืชื ื™ื) ื•-C API, ื•ื–ื• ื”ืกื™ื‘ื” ืฉื”ื—ืœื˜ืชื™ ืœืคืจืกื ืืช ื–ื” ื‘-Lore.

ืขื“ ืœืื—ืจื•ื ื”, ืื ื”ื™ื” ืฆื•ืจืš ืœืขื‘ื•ื“ ืขื ื’ื•ืคื ื™ TrueType, ื”ื™ื• ื‘ื“ื™ื•ืง ืฉืชื™ ืืคืฉืจื•ื™ื•ืช: FreeType ื•-stb_truetype. ื”ืจืืฉื•ื ื” ื”ื™ื ืงื•ืžื‘ื™ื™ืŸ ืขื ืง, ื”ืฉื ื™ื™ื” ืชื•ืžื›ืช ื‘ืžืกืคืจ ืงื˜ืŸ ืœืžื“ื™ ืฉืœ ืคื•ื ืงืฆื™ื•ืช.

ttf-parser ื ืžืฆื ืื™ืคืฉื”ื• ื‘ืืžืฆืข. ื”ื•ื ืชื•ืžืš ื‘ื›ืœ ืื•ืชืŸ ื˜ื‘ืœืื•ืช TrueType (ืคื•ืจืžื˜ TrueType ืžื•ืจื›ื‘ ืžื˜ื‘ืœืื•ืช ื‘ื™ื ืืจื™ื•ืช ืจื‘ื•ืช ื•ื ืคืจื“ื•ืช) ื›ืžื• FreeType, ืืš ืื™ื ื• ืžืขื‘ื“ ืืช ื”ื’ืœื™ืคื™ื ืขืฆืžื.

ื‘ืžืงื‘ื™ืœ, ttf-parser ืžื›ื™ืœ ื”ื‘ื“ืœื™ื ืžืฉืžืขื•ืชื™ื™ื ืจื‘ื™ื ืื—ืจื™ื:

  1. ttf-parser ื ื›ืชื‘ ื‘-Rust ืœืœื ืฉื™ืžื•ืฉ ื‘-unsafe. FreeType ื•-stb_truetype ื ื›ืชื‘ื™ื ื‘-C.
  2. ttf-parser ื”ื•ื ื”ืžื™ืžื•ืฉ ื”ื™ื—ื™ื“ ื”ื‘ื˜ื•ื— ื‘ื–ื™ื›ืจื•ืŸ. ืงืจื™ืืช ื–ื™ื›ืจื•ืŸ ืฉืจื™ืจื•ืชื™ ืื™ื ื” ืืคืฉืจื™ืช. FreeType ืžืชื•ืงืŸ ื›ืœ ื”ื–ืžืŸ ืœืื™ืชื•ืจ ืคื’ื™ืขื•ื™ื•ืช, ื•-stb_truetype ืื™ื ื• ืžื™ื•ืขื“ ืœืงืจื•ื ื’ื•ืคื ื™ื ืฉืจื™ืจื•ืชื™ื™ื.
  3. ttf-parser ื”ื•ื ื”ืžื™ืžื•ืฉ ื”ื™ื—ื™ื“ ื”ื‘ื˜ื•ื— ื‘ืคื ื™ ื”ืœื™ื›ื™ ืžืฉื ื”. ื›ืœ ืฉื™ื˜ื•ืช ื”ื ื™ืชื•ื— ื”ืŸ ืงื‘ื•ืขื•ืช. ื”ื™ื•ืฆื ืžืŸ ื”ื›ืœืœ ื”ื™ื—ื™ื“ ื”ื•ื ื”ื’ื“ืจืช ืงื•ืื•ืจื“ื™ื ื˜ื•ืช ืขื‘ื•ืจ ื’ื•ืคื ื™ื ืžืฉืชื ื™ื, ืืš ืคื•ื ืงืฆื™ื” ื–ื• ื”ื™ื reentrant. FreeType ื”ื™ื ื‘ืขืฆื ื‘ืขืœืช ื”ืœื™ืš ืžืฉื ื” ื™ื—ื™ื“. stb_truetype ื”ื•ื reentrant (ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืขื•ืชืงื™ื ื ืคืจื“ื™ื ื‘ื”ืœื™ื›ื™ ืžืฉื ื” ืฉื•ื ื™ื, ืืš ืœื ื‘ืื—ื“ ืžื ื™ ืจื‘ื™ื).
  4. ttf-parser ื”ื•ื ื”ืžื™ืžื•ืฉ ื”ื™ื—ื™ื“ ืฉืื™ื ื• ืžืฉืชืžืฉ ื‘ื”ืงืฆืื•ืช heap. ื–ื” ืžืืคืฉืจ ื ื™ืชื•ื— ืžื”ื™ืจ ื™ื•ืชืจ ื•ืžื•ื ืข ื‘ืขื™ื•ืช OOM.
  5. ื›ืžื• ื›ืŸ, ื›ืžืขื˜ ื›ืœ ืคืขื•ืœื•ืช ื”ื—ืฉื‘ื•ืŸ ื•ื”ืœื™ื”ื•ืง ืฉืœ ื˜ื™ืคื•ืกื™ื ืžืกืคืจื™ื™ื ื ื‘ื“ืงื•ืช (ื›ื•ืœืœ ืกื˜ื˜ื™ืช).
  6. ื‘ืžืงืจื” ื”ื’ืจื•ืข ื‘ื™ื•ืชืจ, ื”ืกืคืจื™ื™ื” ืขืœื•ืœื” ืœื–ืจื•ืง ื—ืจื™ื’. ื‘ืžืงืจื” ื–ื”, ื—ืจื™ื’ื™ื ื™ืชืคืกื• ื‘-API ืฉืœ C ื•ื”ืคื•ื ืงืฆื™ื” ืชื—ื–ื™ืจ ืฉื’ื™ืื”, ืืš ืœื ืชืงืจื•ืก.

ื•ืœืžืจื•ืช ื›ืœ ืขืจื‘ื•ื™ื•ืช ื”ืื‘ื˜ื—ื”, ttf-parser ื”ื•ื ื’ื ื”ืžื™ืžื•ืฉ ื”ืžื”ื™ืจ ื‘ื™ื•ืชืจ. ืœื“ื•ื’ืžื”, ื ื™ืชื•ื— CFF2 ืžื”ื™ืจ ืคื™ 3.5 ืž-FreeType. ื ื™ืชื•ื— Glyf ืื™ื˜ื™ ื‘-10% ืž-stb_truetype, ืืš ื”ืกื™ื‘ื” ืœื›ืš ื”ื™ื ืฉื”ื•ื ืื™ื ื• ืชื•ืžืš ื‘ื’ื•ืคื ื™ื ืžืฉืชื ื™ื, ื”ื“ื•ืจืฉื™ื ืื—ืกื•ืŸ ืžื™ื“ืข ื ื•ืกืฃ ื›ื“ื™ ืœื™ื™ืฉื. ืคืจื˜ื™ื ื ื•ืกืคื™ื ื‘ README.

ืžืงื•ืจ: linux.org.ru

ืงื ื” ืื™ืจื•ื— ืืžื™ืŸ ืœืืชืจื™ื ืขื ื”ื’ื ืช DDoS, ืฉืจืชื™ VPS VDS ๐Ÿ”ฅ ืงื ื” ืื—ืกื•ืŸ ืืชืจื™ื ืืžื™ืŸ ืขื ื”ื’ื ืช DDoS, ืฉืจืชื™ VPS VDS | ProHoster