ttf-parser se yon bibliyotèk pou analize polis TrueType/OpenType.
Nouvo vèsyon an gen sipò konplè pou polis varyab
(polis varyab) ak C API, kòm yon rezilta nan ki mwen deside fè piblisite li nan lore la.
Jiska dènyèman, si te gen yon bezwen travay ak polis TrueType, te gen egzakteman de opsyon: FreeType ak stb_truetype. Premye a se yon gwo konbine, dezyèm lan sipòte yon ti kantite fonksyon.
ttf-parser se yon kote nan mitan an. Li sipòte tout menm tab TrueType yo (fòma TrueType a konsiste de anpil tab binè separe) kòm FreeType, men li pa trase glif yo tèt yo.
An menm tan an, ttf-parser gen anpil lòt diferans enpòtan:
- ttf-parser ekri nan Rust san yo pa itilize danjere. FreeType ak stb_truetype yo ekri nan C.
- ttf-parser se sèlman aplikasyon an san danje pou memwa. Lekti memwa o aza pa posib. Vilnerabilite yo toujou ap fikse nan FreeType, ak stb_truetype, an prensip, pa fèt pou li polis abitrè.
- ttf-parser se sèlman aplikasyon an san danje. Tout metòd analiz yo konstan. Sèl eksepsyon se mete kowòdone pou polis varyab, men fonksyon sa a se reantrant. FreeType se fondamantalman yon sèl-threaded. stb_truetype - reantrant (ou ka itilize kopi endividyèl nan diferan fil, men se pa youn nan anpil).
- ttf-parser se aplikasyon an sèlman ki pa sèvi ak alokasyon pil. Sa a pèmèt ou pi vit analiz epi evite pwoblèm ak OOM.
- Epitou, prèske tout operasyon aritmetik ak konvèsyon kalite nimerik yo tcheke (ki gen ladan estatik).
- Nan ka ki pi mal la, bibliyotèk la ka voye yon eksepsyon. Nan ka sa a, nan C API a, eksepsyon yo pral kenbe ak fonksyon an ap retounen yon erè, men li pa pral aksidan.
Ak malgre tout garanti sekirite yo, ttf-parser se tou aplikasyon ki pi rapid. Pou egzanp, analiz CFF2 se 3.5 fwa pi vit pase FreeType. Parsing glyf, pandan se tan, se 10% pi dousman pase nan stb_truetype, men sa a se akòz lefèt ke li pa sipòte polis varyab, aplikasyon an ki mande pou estoke plis. enfòmasyon. Plis detay nan README.
Sous: linux.org.ru