ttf-parser 0.5 - د TrueType فونټونو سره کار کولو لپاره نوی کتابتون

ttf-parser د TrueType/OpenType فونټونو د پارس کولو لپاره یو کتابتون دی.
نوې نسخه د متغیر فونټونو لپاره بشپړ ملاتړ لري
(متغیر فونټونه) او C API، د پایلې په توګه ما پریکړه وکړه چې دا په لور کې اعلان کړم.

تر دې وروستیو پورې، که چیرې د TrueType فونټونو سره کار کولو ته اړتیا وه، په سمه توګه دوه اختیارونه شتون درلود: FreeType او stb_truetype. لومړی یو لوی ترکیب دی ، دوهم د کافي لږ شمیر کارونو ملاتړ کوي.

ttf-parser په منځ کې یو ځای دی. دا د ټولو ورته TrueType جدولونو ملاتړ کوي (د TrueType بڼه د ډیری جلا بائنری جدولونو څخه جوړه ده) د FreeType په توګه، مګر پخپله ګالیفس نه رسموي.

په ورته وخت کې، ttf-parser ډیری نور مهم توپیرونه لري:

  1. ttf-parser د غیر محفوظ کارولو پرته په Rust کې لیکل شوی. FreeType او stb_truetype په C کې لیکل شوي.
  2. ttf-parser یوازینی د حافظې خوندي تطبیق دی. د تصادفي حافظې لوستل ممکن ندي. زیانمنتیاوې په دوامداره توګه په FreeType کې ټاکل کیږي، او stb_truetype په اصل کې د خپل سري فونټونو لوستلو لپاره ډیزاین شوی نه دی.
  3. ttf-parser یوازینی تار خوندي تطبیق دی. د تحلیل ټول میتودونه ثابت دي. یوازینی استثنا د متغیر فونټونو لپاره همغږي تنظیم کول دي ، مګر دا فنکشن بیرته راګرځیدونکی دی. FreeType اساسا یو واحد موضوع ده. stb_truetype - بیا ننوتل (تاسو کولی شئ انفرادي کاپيونه په مختلفو تارونو کې وکاروئ، مګر یو له ډیری څخه نه).
  4. ttf-parser یوازینی تطبیق دی چې د هپ تخصیص نه کاروي. دا تاسو ته اجازه درکوي د پارس کولو سرعت ګړندی کړئ او د OOM سره د ستونزو څخه مخنیوی وکړئ.
  5. همچنان ، نږدې ټول حسابي عملیات او د عددي ډولونو تبادلې چک شوي (په شمول د جامد ډول).
  6. په بدترین حالت کې، کتابتون ممکن یو استثنا وغورځوي. په دې حالت کې، په C API کې، استثناوې به ونیول شي او فنکشن به یوه تېروتنه بیرته راولي، مګر خراب نشي.

او د ټولو امنیتي تضمینونو سره سره، ttf-parser هم ترټولو چټک تطبیق دی. د مثال په توګه، د CFF2 تحلیل د FreeType په پرتله 3.5 ځله ګړندی دی. په عین حال کې د glyf پارس کول د stb_truetype په پرتله 10٪ ورو دی، مګر دا د دې حقیقت له امله دی چې دا د متغیر فونټونو ملاتړ نه کوي، چې پلي کول یې اضافي ذخیره کولو ته اړتیا لري. معلومات نور جزیات په کې README.

سرچینه: linux.org.ru

Add a comment