32 个版本 (21 个重大更新)
0.21.0 | 2024 年 8 月 16 日 |
---|---|
0.20.0 | 2024 年 7 月 25 日 |
0.19.3 | 2024 年 5 月 30 日 |
0.18.0 | 2024 年 3 月 20 日 |
0.8.0 | 2023 年 7 月 20 日 |
#149 在 解析器实现
83,754 每月下载量
在 127 个 crate 中使用 (7 个直接使用)
3.5MB
76K SLoC
skrifa
此 crate 的目标是一个健壮、易用、高性能的库,用于读取 OpenType 字体。它建立在 read-fonts 低级解析库之上,也是 oxidize 项目的组成部分。
功能
元数据
以下信息目前公开
- 全局字体度量,支持变化(单位每em,上伸,下伸等)
- 字形度量,支持变化(进阶宽度,左侧边距等)
- 码点到规范字形标识符的映射
- Unicode 变化序列
- 本地化字符串
- 属性(拉伸、样式和粗细)
- 变化轴和命名实例
- 从用户坐标到标准化设计坐标的转换
未来目标包括
- 颜色调板
- 嵌入式位图字体
字形格式
源 | 解码 | 变化 | 光栅化 |
---|---|---|---|
glyf | ✔️ | ✔️ | ✔️ |
CFF | ✔️ | - | ✔️ |
CFF2 | ✔️ | ✔️ | ✔️ |
COLRv0 | ✔️ | - | - |
COLRv1 | ✔️ | ✔️ | - |
EBDT | ✔️* | - | - |
CBDT | ✔️* | - | - |
sbix | ✔️* | - | - |
* 通过 read-fonts
crate 提供原始支持。
恐慌
此库不应该因 API 使用不当或使用损坏的恶意字体文件而恐慌。如果发生这种情况,请提交问题。
名字的由来?
遵循我们的主题,skrifa 是古诺斯语中的“写”或“它是写下来的”。因此得名。
安全性
不安全代码在库根目录下通过 #![forbid(unsafe_code)]
属性被禁止。