ttf-parser 0.5 — nova biblioteca para trabalhar com fontes TrueType

ttf-parser é uma biblioteca para análise de fontes TrueType/OpenType.
A nova versão possui suporte completo para fontes variáveis
(fontes variáveis) e C API, por isso decidi promovê-la no lore.

Até recentemente, se houvesse a necessidade de trabalhar com fontes TrueType, havia exatamente duas opções: FreeType e stb_truetype. O primeiro é uma enorme plataforma, o segundo suporta uma quantidade bastante limitada de funções.

ttf-parser está em algum lugar no meio. Ele suporta todas as mesmas tabelas TrueType (o formato TrueType consiste em várias tabelas binárias separadas) que o FreeType, mas não se ocupa da renderização dos glifos.

Além disso, ttf-parser contém muitas outras diferenças significativas:

  1. ttf-parser é escrito em Rust sem o uso de unsafe. FreeType e stb_truetype são escritos em C.
  2. ttf-parser é a única implementação segura (memory-safe). A leitura de memória arbitrária é impossível. O FreeType constantemente corrige vulnerabilidades, enquanto o stb_truetype não é, em princípio, destinado à leitura de fontes arbitrárias.
  3. ttf-parser é a única implementação thread-safe. Todos os métodos de análise são constantes. A única exceção é a definição de coordenadas para fontes variáveis, mas essa função é reentrante. O FreeType, em princípio, é single-threaded. O stb_truetype — reentrante (pode usar cópias separadas em diferentes threads, mas não uma de muitas).
  4. ttf-parser é a única implementação que não utiliza alocações na "heap". Isso permite acelerar a análise e evitar problemas durante OOM.
  5. Além disso, quase todas as operações aritméticas e conversões de tipos numéricos são verificadas (incluindo estaticamente).
  6. No pior dos casos, a biblioteca pode lançar uma exceção. Nesse caso, na API C, as exceções serão capturadas e a função retornará um erro, mas não falhará.

E apesar de todas as garantias de segurança, ttf-parser também é a implementação mais rápida. Por exemplo, a análise de CFF2 é 3,5 vezes mais rápida do que no FreeType. A análise de glyf, por sua vez, é 10% mais lenta do que no stb_truetype, mas isso se deve ao fato de que ele não suporta fontes variáveis, cuja implementação requer o armazenamento de informações adicionais. Mais detalhes em README.

Fonte: linux.org.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster