Allsorts是一种字体解析器,塑造引擎和子集,用于Opentype,Woff和Woff2完全用Rust写成。它是从Prince中提取的,Prince是一种题材和将HTML和CSS文档列入PDF的工具。
Allsorts塑造引擎是与Opentype塑料规范共同开发的,该规范旨在指定Opentype字体成型行为。
glyf , CFF , CFF2 ),Woff和Woff2文件。字体塑形是以Unicode编码点和字体形式获取文本的过程,并根据文本从字体上铺设字形。这涉及纪念字体指定的kerning,结扎和替换。对于某些语言,这相对简单。对于其他人来说,例如指示脚本,它非常复杂。塑造后,另一个图书馆(例如Pathfinder或Freetype)负责渲染字形。要了解有关文本渲染的更多信息,Andrea Cognolato对Linux上的现代字体呈现有很好的概述。这些概念在其他平台上仍然相似。
请参阅Allsorts工具存储库的一组工具,这些工具可以锻炼Allsorts字体解析,塑造和子集。
我们目前不支持:
已知限制:
Allsorts仍处于积极的发展,但在2019年将其包含在Prince 13中。
当前,字体解析代码是手写的。计划最终通过我们的声明数据定义语言项目将机器生成的代码替换。
Allsorts CI在Linux,MacOS和Windows上运行测试。通过Prince,它也是为FreeBSD建造的。
最低支持的锈版本: 1.66.0
要构建板条箱,请确保您的生锈1.66.0或安装了更新的箱子。
使用cargo build并通过cargo test进行测试。
| 特征 | 描述 | 默认启用 | 额外的依赖性 |
|---|---|---|---|
outline | 启用用于访问字形大纲的代码 | ✅ | |
flate2_zlib | 使用Zlib后端进行Flate2 | ✅ | zlib |
flate2_rust | 用锈后端飞行2 | miniz_oxide | |
prince | 启用王子特定的测试和代码 | ||
specimen | 启用用于生成HTML字体样品的模块 | upon , unicode-blocks |
注意:在我们的测试中, zlib flate2后端更快,但是在编译WASM或类似的情况下,您可能更喜欢Rust后端作为纯生锈解决方案。
欢迎捐款,请参阅贡献文件以获取更多详细信息。
我们旨在维护生锈社区标准:
无论性别,性取向,残疾,种族,宗教或类似的个人特征,我们都致力于为所有人提供一个友好,安全和热情的环境。
我们遵循锈蚀守则。
Allsorts根据Apache许可证(版本2.0)的条款分发。
有关详细信息,请参见许可证。