Allsorts es un analizador de fuentes, un motor de configuración y subconjunto para OpenType, Woff y Woff2 escrito por completo en Rust. Fue extraído de Prince, una herramienta que escribe y coloca documentos HTML y CSS en PDF.
El motor de conformación Allsorts se desarrolló junto con una especificación para la conformación de OpenType, cuyo objetivo es especificar el comportamiento de conformación de fuentes OpenType.
glyf , CFF , CFF2 ), Woff y Woff2 Archivos.La configuración de la fuente es el proceso de tomar texto en forma de puntos de código unicode y una fuente, y establecer glifos de la fuente según el texto. Esto implica honrar al kerning, ligaduras y sustituciones especificadas por la fuente. Para algunos idiomas, esto es relativamente sencillo. Para otros, como los scripts indic, es bastante complejo. Después de dar forma, otra biblioteca como Pathfinder o FreeType es responsable de representar los glifos. Para obtener más información sobre la representación de texto, Andrea Cognolato tiene una buena descripción general de las fuentes modernas en Linux. Los conceptos siguen siendo similares en otras plataformas.
Consulte el repositorio de herramientas AllSorts para obtener un conjunto de herramientas que ejercen AllSorts Font Font, conformación y subconjunto.
Actualmente no apoyamos:
Limitaciones conocidas:
Allsorts todavía está en desarrollo activo, pero alcanzó su primer hito de lanzamiento con su inclusión en el Príncipe 13 en 2019. En Prince es responsable de toda la carga de fuentes y la configuración de fuentes.
Actualmente, el código de análisis de fuentes está escrito a mano. Se planea que esto eventualmente sea reemplazado por el código generado por la máquina a través de nuestro proyecto de lenguaje de definición de datos declarativo.
Allsorts CI ejecuta pruebas en Linux, MacOS y Windows. Vía Prince también está construido para FreeBSD.
Versión mínima de óxido compatible: 1.66.0
Para construir la caja, asegúrese de tener Rust 1.66.0 o más nuevo instalado.
Construya con cargo build y ejecute las pruebas con cargo test .
| Característica | Descripción | Predeterminado habilitado | Dependencias adicionales |
|---|---|---|---|
outline | Habilitar código para acceder a los contornos de glifo | ✅ | |
flate2_zlib | Use el backend de Zlib para Flate2 | ✅ | zlib |
flate2_rust | Use el backend de óxido para Flate2 | miniz_oxide | |
prince | Habilitar pruebas y código específicos de Prince | ||
specimen | Habilitar el módulo para generar muestras de fuente HTML | upon , unicode-blocks |
Nota: En nuestras pruebas, el backend de zlib flate2 fue más rápido, pero puede preferir el backend de óxido para una solución de óxido puro al compilar a WASM o similar.
Las contribuciones son bienvenidas, consulte el documento contribuyente para obtener más detalles.
Nuestro objetivo es mantener los estándares de la comunidad de Rust:
Estamos comprometidos a proporcionar un ambiente amigable, seguro y acogedor para todos, independientemente de su género, orientación sexual, discapacidad, etnia, religión o características personales similares.
Seguimos el Código de Conducta de Rust.
AllSorts se distribuye bajo los términos de la licencia Apache (versión 2.0).
Vea la licencia para más detalles.