google-fonts 0.1.0

Download and cache TTF fonts from Google using Rust.
Documentation

google-fonts

Download and cache TTF fonts from Google using Rust.

There are 1,708 font families, and 11,689 fonts.

Similar to the Downloadable Fonts feature in Android Studio, and the Google Web Fonts API.

Example

Download font data with a few approaches.

use google_fonts::lemonada_variable;
use google_fonts::Font::NotoSansRegular;
use google_fonts::Font::RobotoRegular;
use ttf_parser::Face;

fn main() {
    // Get and cache font data with a named function.
    let font_data = lemonada_variable().unwrap();
    let face = Face::parse(&font_data, 0).unwrap();
    eprintln!("Font data: {:?}", face);

    // Get and cache font data with an enum variant function.
    let font_data = NotoSansRegular.get_with_cache().unwrap();
    let face = Face::parse(&font_data, 0).unwrap();
    eprintln!("Font data: {:?}", face);

    // Get font data without caching by using an enum variant function.
    let font_data = RobotoRegular.get().unwrap();
    let face = Face::parse(&font_data, 0).unwrap();
    eprintln!("Font data: {:?}", face);
}

Crate features

full, variable, and static crate features are available.

  • variable enables only fonts with variable font technology.
  • static enables only fonts with static font technology.
  • full enables both variable and static features.

full is the default feature.

Variable font technology is newer, more flexible, and provides style variations in one or two files. Static font technology uses more font files for each style variation. A majority of the fonts are in the static feature.

Enable the variable feature to significantly reduce build time and crate size.

Doc comment font images

View font images from doc comments.

tooltip