#font #wrapper #fontconfig #search #linux

fontconfig-rs

安全、高级的 fontconfig 库包装器

2 个版本

0.1.1 2022 年 6 月 21 日
0.1.0 2022 年 6 月 21 日

#1548文本处理

Download history 39/week @ 2024-03-11 24/week @ 2024-03-18 33/week @ 2024-03-25 59/week @ 2024-04-01 147/week @ 2024-04-08 81/week @ 2024-04-15 25/week @ 2024-04-22 7/week @ 2024-04-29 14/week @ 2024-05-06 10/week @ 2024-05-13 24/week @ 2024-05-20 15/week @ 2024-05-27 80/week @ 2024-06-03 40/week @ 2024-06-10 13/week @ 2024-06-17 26/week @ 2024-06-24

每月 161 次下载
fontloader 中使用

MIT 许可证

95KB
2.5K SLoC

fontconfig


freedesktop.org 的 Fontconfig 库的包装器,用于在类似 UNIX 的系统(如 Linux 和 FreeBSD)上定位字体。需要安装 Fontconfig。

依赖项

  • Alpine Linux: fontconfig-dev
  • Arch Linux: fontconfig
  • 基于 Debian 的系统: libfontconfig1-dev
  • FreeBSD: fontconfig
  • Void Linux: fontconfig-devel

用法

main.rs:

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());
}

例如,您可以使用 font.pathopengl_graphics 创建一个 GlyphCache,并将其传递给 conrod

Cargo 功能

功能 描述 默认启用 额外依赖项
dlopen dlopen libfontconfig 在运行时

dlopen 功能允许在链接时间不动态链接到 Fontconfig C 库的情况下构建此包。相反,Fontconfig 将使用 dlopen 函数在运行时动态加载。这在交叉编译情况下可能很有用,因为您不需要在编译时为目标平台提供可用的 Fontconfig 版本。

其他 Fontconfig 包

  • servo-fontconfig — 此crate仅提供低级接口。它依赖于 servo-fontconfig-sys,如果找不到兼容版本,则会回退到构建Fontconfig的私有版本。它反过来又依赖于 expat-sys,它也会执行同样的私有版本Expat的构建。这使得如果您分发需要Fontconfig的代码库时更加容易,但提供了更少的对将使用的库的控制。
  • fontconfig-sys — 已被 yeslogic-fontconfig-sys 取代。
  • fontconfig — 我们从中分叉的crate。

致谢

依赖项

~0.5–6MB
~20K SLoC