ttf-parser 0.5 - una nova biblioteca per travaglià cù fonti TrueType

ttf-parser hè una libreria per analizà i caratteri TrueType/OpenType.
A nova versione hà un supportu cumpletu per i fonti variabili
(caratteri variabili) è C API, per via di quale aghju decisu di publicità in u lore.

Finu à pocu tempu, s'ellu ci era bisognu di travaglià cù fonti TrueType, ci era esattamente duie opzioni: FreeType è stb_truetype. U primu hè una grande combinazione, u sicondu sustene un numeru abbastanza chjucu di funzioni.

ttf-parser hè in qualchì locu à mezu. Supporta tutti i listessi tavule TrueType (u furmatu TrueType hè custituitu da parechje tavule binari separati) cum'è FreeType, ma ùn tira micca i glifi stessi.

À u listessu tempu, ttf-parser cuntene parechje altre differenzi significati:

  1. ttf-parser hè scrittu in Rust senza aduprà micca sicuru. FreeType è stb_truetype sò scritti in C.
  2. ttf-parser hè l'unica implementazione sicura di memoria. A lettura di a memoria aleatoria ùn hè micca pussibule. Vulnerabilità sò constantemente riparate in FreeType, è stb_truetype hè, in principiu, micca pensatu per leghje fonti arbitrarie.
  3. ttf-parser hè l'unica implementazione di thread-safe. Tutti i metudi di analisi sò custanti. L'unica eccezzioni hè di stabilisce coordenate per i fonti variabili, ma sta funzione hè rientrante. FreeType hè basicamente un filu unicu. stb_truetype - reentrant (pudete aduprà copie individuali in diversi fili, ma micca unu di parechji).
  4. ttf-parser hè l'unica implementazione chì ùn usa micca allocazioni di heap. Questu permette di accelerà l'analisi è evità prublemi cù OOM.
  5. Inoltre, quasi tutte l'operazioni aritmetiche è cunversione di i tipi numerichi sò verificati (cumpresu statically).
  6. In u peghju casu, a biblioteca pò scaccià una eccezzioni. In questu casu, in l'API C, l'eccezzioni seranu catturati è a funzione torna un errore, ma ùn falla micca.

E malgradu tutte e garanzii di sicurezza, ttf-parser hè ancu l'implementazione più veloce. Per esempiu, l'analisi CFF2 hè 3.5 volte più veloce di FreeType. Parsing glyf, intantu, hè 10% più lento chè in stb_truetype, ma questu hè duvuta à u fattu chì ùn sustene micca i fonti variabili, l'implementazione di quale esige un almacenamentu supplementu. infurmazione. Più dettagli in README.

Source: linux.org.ru

Add a comment