font-kit
A cross-platform font loading library
0.14.3
17M downloads/mo
#2330 most downloaded on crates.io
servo/font-kit
What this package is like to depend on
Last release 1 years ago
26 May 2025
Release timing varies
gaps range from 8 days to 1.7 years
Some releases are documented
notes for 8 of 22 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
22 releases · first in 2018
0 releases in the last 12 months
see the full history below
Release timeline
22 releases · Jul 2018 to May 2025Releases
latest 22-
0.14.326 May 2025Release notes
Open source →Update pathfinder_simd (#264)
* Update pathfinder_simd
Fixes simd features to be able to build on nightly
* Publish 0.14.3.
---------
Co-authored-by: Josh Matthews <[email protected]>
-
0.14.202 Aug 2024Nothing published for this version
-
0.14.118 Jul 2024 -
0.13.221 May 2024Release notes
Open source →Instead of depending on
rust-freetypewhich in turn depends on
freetype-sys, just depend onfreetype-sysdirectly. -
0.13.113 May 2024 -
0.13.020 Mar 2024Release notes
Open source →- bug: Add diagnostic information on font load error
I ran into a bug a while back that prevent me from using the plotters
library for months. I did finally figure out what was causing it: a file
in my font library documented in issue#231. Removing the file fixed my
issue, but the opaque problem is sure to ensnare others.This PR adds a
LoadError(Cow<'static, str>)variant to
SelectionErrorenum. It removesCopybecauseCowisn't copyable.
And now when I run the test suite with the bad file in place, it reports
this error, which is far and away more helpful than before.> RUST_BACKTRACE=1 cargo test --all ... running 5 tests test loaders::core_text::test::test_core_text_to_css_font_stretch ... ok test loaders::core_text::test::test_core_text_to_css_font_weight ... ok test sources::core_text::test::test_css_to_core_text_font_stretch ... ok test sources::core_text::test::test_css_to_core_text_font_weight ... ok test loaders::core_text::test::test_from_core_graphics_font ... FAILED failures: ---- loaders::core_text::test::test_from_core_graphics_font stdout ---- thread 'loaders::core_text::test::test_from_core_graphics_font' panicked at src/loaders/core_text.rs:940:14: called `Result::unwrap()` on an `Err` value: LoadError("Parse error on path \"/Users/shane/Library/Fonts/Arial\"") stack backtrace: 0: rust_begin_unwind at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panicking.rs:645:5 1: core::panicking::panic_fmt at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/panicking.rs:72:14 2: core::result::unwrap_failed at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/result.rs:1649:5 3: core::result::Result<T,E>::unwrap at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/result.rs:1073:23 4: font_kit::loaders::core_text::test::test_from_core_graphics_font at ./src/loaders/core_text.rs:938:21 5: font_kit::loaders::core_text::test::test_from_core_graphics_font::{{closure}} at ./src/loaders/core_text.rs:937:38 6: core::ops::function::FnOnce::call_once at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/ops/function.rs:250:5 7: core::ops::function::FnOnce::call_once at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/ops/function.rs:250:5 note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. failures: loaders::core_text::test::test_from_core_graphics_font test result: FAILED. 4 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s error: test failed, to rerun pass `--lib`
A variant that used
Stringwould suffice for this case. I tend to use
Cow<'static, str>on errors since many times they can be&'static str.-
refactor: Prefer CannotAccessSource to new variant
-
chore: Run cargo fmt.
-
0.12.001 Dec 2023 -
0.11.028 Mar 2022Release notes
Open source →switch to yeslogic-fontconfig-sys instead of servo-fontconfig
servo-fontconfig statically links a vendored fontconfig library if fontconfig is not found by pkgconfig. Using a vendored fontconfig
library instead of the system fontconfig library doesn't actually work well though:
slint-ui/slint#88
Building a vendored copy of fontconfig is also problematic because fontconfig has a lot of C dependencies, which makes it difficult to cross compile the vendored copy of fontconfig:$ pkg-config fontconfig --static --libs -lfontconfig -lfreetype -lz -lbz2 -lpng16 -lm -lm -lz -lharfbuzz -lm -lglib-2.0 -lm -lpcre -lsysprof-capture-4 -pthread -lgraphite2 -lbrotlidec -lbrotlicommon -lxml2 -lz -llzma -lmInstead of using a vendored copy, with
yeslogic/fontconfig-rs#12
yeslogic-fontconfig-sys will have a Cargo feature to dlopen fontconfig at runtime instead of linking it at build time. This is exposed in font-kit with the new source-fontconfig-dlopen feature, which is disabled by default. This feature makes it considerably easier to cross compile by avoiding the need to cross compile fontconfig and all its dependencies. -
0.10.108 Jun 2021 -
0.10.028 Jul 2020Nothing published for this version
-
0.9.110 Jul 2020Nothing published for this version
-
0.9.017 Jun 2020Nothing published for this version
-
0.8.003 Jun 2020Nothing published for this version
-
0.7.130 May 2020Nothing published for this version
-
0.7.012 May 2020Nothing published for this version
-
0.6.014 Apr 2020Nothing published for this version
-
0.5.007 Dec 2019Nothing published for this version
-
0.4.023 Jul 2019Nothing published for this version
-
0.3.110 Jun 2019Nothing published for this version
-
0.2.028 May 2019Nothing published for this version
-
0.1.019 Sep 2018Nothing published for this version
-
0.0.024 Jul 2018Nothing published for this version