1 unstable release
0.1.0 | Aug 17, 2019 |
---|
#231 in Rendering
17 stars & 5 watchers
290KB
7.5K
SLoC
Font -- Pure Rust font parsers
Supported Formats
TrueType
kern
Table supported- Full outline support
- Most
CMAP
s implemented - all glyphs listed in any cmap can be accessed with
gid_for_unicode_codepoint
(orgid_for_codepoint
which calls the former)
CFF (Compact Font Format)
- Charstring format 1 and 2 are fully implemented
- All glyphs that are listed by
/Encoding
can be accessed viagid_for_codepoint
. Glyphs can be looked up from unicode values if they are defined in AdobesStandardEncoding
. - All glyphs can be accessed by name using
gid_for_name
- (not yet implemented: Translating codepoints into glyph names and using them for lookup)
Type1
- Contains a PostScript interpreter (without file access)
- Calling PostScript from CharStrings (used for Hinting) is not implemented. Instead they are emulated and the correct outline is produced.
- Glyphs can accessed with:
gid_for_name
using the name of the charstringgid_for_codepoint
using the built in/Encoding
gid_for_unicode_codepoint
using the AFL-Glyphlist
OpenType
- The
glyf
(TrueType) andCFF
(Type1) outlines are supported. SVG
outlines are supported.- Most of the
CMAP
formats are implemented. - Kerning using the
kern
andGPOS
table is implemented.
WOFF / WOFF2
- essentially OpenType fonts. implemented and working.
API
NOTE: The code may change a bit. Especially multi-codepoint glyphs cannot be looked up yet.
Fonts are loaded with parse
, which returns a trait object.
Demo
You can try it out here Drop font files on the page to add them.
Dependencies
~3–4.5MB
~79K SLoC