Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
T

ttf-parser

> 编程语言
Open source

A high-level, safe, zero-allocation TrueType font parser.

787 stars0 likes0 views
WebsiteGitHub

About

A high-level, safe, zero-allocation TrueType font parser.

ttf-parser

This crate is in maintenance mode. Bug fixes only — no new features.

Bug reports and fixes are welcome and will be reviewed promptly. Correctness, panics and security issues are in scope. New table support, new API surface and performance work are not, and feature requests will be closed.

For new projects, we recommend fontations (read-fonts and skrifa), which is actively developed by Google Fonts, has broader table support, and is the direction the Rust font ecosystem is moving.

A high-level, safe, zero-allocation font parser for TrueType, OpenType, and AAT.

Can be used as a Rust or C library.

Requires Rust 1.88 and uses edition 2024.

Features

  • A high-level API for most common properties, hiding all parsing and data resolving logic.
  • A low-level, but safe API to access TrueType tables data.
  • Highly configurable. You can disable most of the features, reducing binary size. You can also parse TrueType tables separately, without loading the whole font/face.
  • Zero heap allocations.
  • Zero unsafe.
  • Zero dependencies.
  • no_std/WASM compatible.
  • A basic C API.
  • Fast.
  • Stateless. All parsing methods are immutable.
  • Simple and maintainable code (no magic numbers).

Safety

  • The library must not panic. Any panic considered as a critical bug and should be reported.
  • The library forbids unsafe code.
  • No heap allocations, so crash due to OOM is not possible.
  • All recursive methods have a depth limit, and the ones whose input forms a graph (composite glyphs, the COLRv1 paint graph, CFF subroutines) additionally bound the total work per call. A depth limit alone does not: with fan-out b and depth d, a small font can force b^d visits without ever exceeding the depth.
  • Stack usage is bounded, but not tightly: outlining a composite variable glyph nests up to 32 frames, each holding a variation-tuple buffer, for roughly 80KiB in the worst case.
  • Most of arithmetic operations are checked.
  • Most of numeric casts are checked.

License

Licensed under either of

  • Apache License, Version 2.0 (LICENSE-APACHE or )
  • MIT license (LICENSE-MIT or )

at your option.

Contribution

See CONTRIBUTING.md for how to build and test the library, the C API and the benchmarks, the lint and formatting workflow, and what is expected of a change to a parser of untrusted input.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Issues· 5 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

Rustopentypeotftruetypettf

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言