#font #wrapper #fontconfig #search


RENAMED: use the fontconfig crate instead

2 releases

Uses old Rust 2015

0.1.1 Jun 11, 2020
0.1.0 Dec 5, 2019

#1791 in Text processing

24 downloads per month

MIT license

911 lines


A wrapper around freedesktop.org's fontconfig library, for locating fonts on a UNIX like systems such as Linux and FreeBSD. Requires fontconfig to be installed.


  • Arch Linux: fontconfig
  • Debian-based systems: libfontconfig1-dev
  • FreeBSD: fontconfig
  • Void Linux: fontconfig-devel



yeslogic-fontconfig = "0.1.0"


use fontconfig::Fontconfig;

fn main() {
    let fc = Fontconfig::new().unwrap();
    // `Fontconfig::find()` returns `Option` (will rarely be `None` but still could be)
    let font = fc.find("freeserif", None).unwrap();
    // `name` is a `String`, `path` is a `Path`
    println!("Name: {}\nPath: {}", font.name, font.path.display());

You could then, for example, use font.path to create a GlyphCache from opengl_graphics and pass it to conrod.

Other Fontconfig Crates

  • servo-fontconfig — This crate provides a low-level interface only. It depends on servo-fontconfig-sys, which will fall back to building a vendored version of Fontconfig if a compatible version can't be found. It in turn depends on expat-sys, which does the same thing regarding a vendored version of Expat. This makes it easier if you are distributing a code base that needs Fontconfig but provides less control over the libraries that will be used.
  • fontconfig + fontconfig-sys — These crates have not been updated since Dec 2014.

For our needs in Prince we wanted higher-level bindings that did not fall back on vendored versions of libraries, which is what the crates in this repo provide.