ttf-parser 0.5 - lub tsev qiv ntawv tshiab rau kev ua haujlwm nrog TrueType fonts

ttf-parser yog ib lub tsev qiv ntawv rau parsing TrueType/OpenType fonts.
Tus tshiab version muaj kev txhawb nqa tag nrho rau cov fonts sib txawv
(hloov pauv fonts) thiab C API, raws li qhov tshwm sim ntawm qhov kuv txiav txim siab tshaj tawm nws hauv cov lus dab neeg.

Txog thaum tsis ntev los no, yog tias xav tau ua haujlwm nrog TrueType fonts, muaj ob txoj kev xaiv: FreeType thiab stb_truetype. Thawj yog qhov sib xyaw ua ke loj, qhov thib ob txhawb nqa me me ntawm kev ua haujlwm.

ttf-parser yog qhov chaw hauv nruab nrab. Nws txhawb nqa tag nrho cov lus TrueType tib yam (cov ntawv TrueType muaj ntau cov lus sib cais) raws li FreeType, tab sis tsis kos cov glyphs lawv tus kheej.

Tib lub sijhawm, ttf-parser muaj ntau qhov sib txawv tseem ceeb:

  1. ttf-parser yog sau rau hauv Rust yam tsis siv tsis zoo. FreeType thiab stb_truetype yog sau rau hauv C.
  2. ttf-parser yog qhov kev siv lub cim xeeb nkaus xwb. Kev nyeem random nco tsis tau. Vulnerabilities tau raug kho tas li hauv FreeType, thiab stb_truetype yog, hauv paus ntsiab lus, tsis yog tsim los nyeem cov fonts tsis ncaj ncees lawm.
  3. ttf-parser yog qhov kev siv xov zoo nkaus xwb. Txhua txoj kev parsing yog tas mus li. Qhov tsuas yog qhov tshwj xeeb yog teeb tsa kev sib koom tes rau cov fonts sib txawv, tab sis qhov haujlwm no yog rov ua dua. FreeType yog qhov yooj yim ib leeg xov. stb_truetype - reentrant (koj tuaj yeem siv cov ntawv luam ntawm tus kheej hauv cov xov sib txawv, tab sis tsis yog ib qho ntawm ntau).
  4. ttf-parser yog qhov kev siv nkaus xwb uas tsis siv heap faib. Qhov no tso cai rau koj kom ceev parsing thiab zam teeb meem nrog OOM.
  5. Tsis tas li ntawd, yuav luag txhua qhov kev ua lej lej thiab kev hloov pauv ntawm hom lej raug kuaj xyuas (xws li statically).
  6. Hauv qhov xwm txheej phem tshaj plaws, lub tsev qiv ntawv yuav cuam tshuam qhov kev zam. Hauv qhov no, hauv C API, kev zam yuav raug ntes thiab cov haujlwm yuav rov qab ua yuam kev, tab sis yuav tsis poob.

Thiab txawm tias tag nrho cov kev ruaj ntseg guarantees, ttf-parser kuj yog qhov kev siv ceev tshaj plaws. Piv txwv li, parsing CFF2 yog 3.5 npaug sai dua FreeType. Parsing glyf, lub sijhawm no, yog 10% qeeb dua hauv stb_truetype, tab sis qhov no yog vim qhov tseeb tias nws tsis txhawb cov fonts sib txawv, qhov kev siv uas yuav tsum tau khaws cia ntxiv. cov ntaub ntawv. Xav paub ntxiv hauv NYEEM.

Tau qhov twg los: linux.org.ru ua

Ntxiv ib saib