GitXplorerGitXplorer
s

rust-font-tools

public
65 stars
11 forks
7 issues

Commits

List of commits on branch main.
Unverified
7d2097445c636394fa164b51eb3dec26bdc1b5be

Ensure directory

ssimoncozens committed 9 days ago
Unverified
4b29ccb2fcc5c0903ce363297cae2d5f923ffb93

Many fixes

ssimoncozens committed 10 days ago
Unverified
dd35fafe5383a80f30a274ee8ca2bc24939c2ccc

Allow saving, test open->upgrade->save

ssimoncozens committed 10 days ago
Unverified
fd802f724a066a5a7e0a957691b06f85f0cfe56f

More tests, fix tricky structures

ssimoncozens committed 10 days ago
Unverified
4c808db9ad85578a90451bc93dbe9db31c7ec840

Load G2/G3 files and convert G2->G3 (simply)

ssimoncozens committed 10 days ago
Unverified
670c2548a082efc62ec7f33cb8b15e5ce6543574

Fix stupid component position naming problem

ssimoncozens committed a month ago

README

The README file for this repository.

Rust Font Tools

This is a collection of crates for working on (and compiling) OpenType fonts in Rust. It also contains the Fonticulus font compiler. If you're just interested in compiling fonts quickly, see the section Fonticulus Installation below.

Components

  • babelfont-rs: A library for loading and representing source font files (Glyphs 3, UFO, Designspace, Fontlab VI VFJ) into a common set of objects.
  • designspace: A library for reading .designspace files.
  • dschecker: A tool for checking Designspace formatting and compatibility issues.
  • fonticulus: A fonticulusly fast font compiler.
  • fonttools-cli: Various command line utilities using the fonttools-rs library.
  • fonttools-rs: A high-level library for parsing and creating OpenType and TrueType binary fonts.
  • openstep-plist: A library for reading OpenStep-style plist fonts (used by babelfont-rs to handle Glyphs files).
  • otmath: A library for various common OpenType-related mathematical operations, rounding, interpolation and so on.
  • otspec: A low-level library for parsing and creating OpenType and TrueType binary fonts.
  • otspec-macros: A set of proc_macros for serializing and deserializing OpenType binary data into Rust structures.
  • triangulate: A work-in-progress UFO interpolator.

Fonticulus Installation

First: Install Rust

Then:

cargo install --git https://github.com/simoncozens/rust-font-tools fonticulus
fonticulus --help

This will install the latest cutting-edge version directly from the repo, which is probably what you want to be using at this point while Fonticulus is in alpha stage.

dschecker

cargo install --git https://github.com/simoncozens/rust-font-tools dschecker
dschecker --help

dschecker quickly checks .designspace files for correctness and for interpolation incompatibilities. It has two output modes; by default, it prints a human-readable textual description of any problems it finds. When the -j flag is passed on the command line, it prints a report in JSON format, for use when called by other programs.

triangulate

% cargo install --git https://github.com/simoncozens/rust-font-tools dschecker
% triangulate Nunito.designspace ital=0 wght=450
Saved on Nunito-ital0-wght450.ufo

triangulate interpolates a font, creating a UFO file representing the font at a given point in the design space.