Crate ttf_parser
source ·Expand description
A high-level, safe, zero-allocation TrueType font parser.
Supports TrueType, OpenType and AAT fonts.
Font parsing starts with a Face
.
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.- 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.
- Technically, should use less than 64KiB of stack in worst case scenario.
- Most of arithmetic operations are checked.
- Most of numeric casts are checked.
Modules
- An Anchor Point Table implementation.
- This module contains Apple Advanced Typography Layout supplementary tables implementation.
- An Axis Variations Table implementation.
- A Color Bitmap Data Table implementation.
- A Color Bitmap Location Table implementation.
- A Compact Font Format Table implementation.
- A Compact Font Format 2 Table implementation.
- A Character to Glyph Index Mapping Table implementation.
- A Color Table implementation.
- A Color Palette Table implementation.
- A Feature Name Table implementation.
- A Font Variations Table implementation.
- A Glyph Definition Table implementation.
- A Glyph Data Table implementation.
- A Glyph Positioning Table implementation.
- A Glyph Substitution Table implementation.
- A Glyph Variations Table implementation.
- A Font Header Table implementation.
- A Horizontal Header Table implementation.
- A Horizontal/Vertical Metrics Table implementation.
- A Horizontal/Vertical Metrics Variations Table implementation.
- A Kerning Table implementation.
- An Extended Kerning Table implementation.
- An Index to Location Table implementation.
- A Math Table implementation.
- A Maximum Profile Table implementation.
- An Extended Glyph Metamorphosis Table implementation.
- A Metrics Variations Table implementation.
- A Naming Table implementation.
- A list of name ID’s.
- This module contains OpenType Layout supplementary tables implementation.
- A OS/2 and Windows Metrics Table implementation.
- A PostScript Table implementation.
- A Standard Bitmap Graphics Table implementation.
- An SVG Table implementation.
- A Tracking Table implementation.
- A Vertical Header Table implementation.
- A Vertical Origin Table implementation.
Structs
- A font face.
- Parsed face tables.
- A 32-bit signed fixed-point number (16.16).
- A type-safe wrapper for glyph ID.
- A slice-like container that converts internal binary data only on access.
- A slice-like container that converts internal binary data only on access.
- An iterator over
LazyArray16
. - An iterator over
LazyArray32
. - A line metrics.
- A variation coordinate in a normalized coordinate system.
- A glyph’s raster image.
- A raw font face.
- A list of all supported tables as raw data.
- A rectangle.
- A RGBA color in the sRGB color space.
- A script metrics used by subscript and superscript.
- A raw table record.
- A 4-byte tag.
- A font variation value.
Enums
- A list of errors that can occur during a CFF glyph outlining.
- A list of font face parsing errors.
- A
Name
language. - Face permissions.
- A platform ID.
- A glyph raster image format.
- A face style.
- A face weight.
- A face width.
Traits
- A trait for parsing raw binary data of fixed size.
- A trait for glyph outline construction.
Functions
- Returns the number of fonts stored in a TrueType font collection.