SheepNav
TaeType WASM

TaeType WASM

github.com

在浏览器中解码、子集化、塑形和栅格化字体

1个月前制作者:Taeha

关于 TaeType WASM

TaeType WASM 是一款基于 WebAssembly 的纯 Rust 字体引擎,让字体处理完全在浏览器端完成,无需服务器参与。它专为处理不可信的二进制字体数据而设计,通过 #![forbid(unsafe_code)] 确保内存安全,零原生依赖,零安全妥协。

核心功能

  • 字体解码与实例化:支持可变字体(Variable Fonts)的实例化,轻松生成不同字重、字宽等变体。
  • 子集化:从字体文件中提取所需的字符子集,大幅减小文件体积,提升加载速度。
  • 塑形:基于 OpenType 规范的文本塑形,正确处理连字、位置调整等复杂排版。
  • 栅格化:将字形转换为像素位图,支持抗锯齿渲染。
  • 高级数据读取:读取 COLR(彩色字体)和 MATH(数学公式)表,满足特殊排版需求。

主要特性

  • 零服务器往返:所有处理在浏览器本地完成,保护用户隐私,降低延迟。
  • 纯 Rust 实现:利用 Rust 的内存安全特性,杜绝缓冲区溢出等常见漏洞。
  • WebAssembly 编译:跨平台运行,无需安装任何插件或原生库。
  • 高性能:WASM 执行效率接近原生,适合实时字体处理场景。
  • 易于集成:提供简洁的 JavaScript API,可无缝嵌入现代 Web 应用。

适用场景

  • 在线字体编辑器:用户可直接在浏览器中预览和编辑字体,无需上传到服务器。
  • Web 排版优化:动态子集化字体,按需加载,减少带宽消耗。
  • 安全敏感应用:处理用户上传的字体文件时,避免服务器端风险。
  • 离线工具:结合 Service Worker,实现完全离线的字体处理功能。

相关工具