PackageTrack
Sign in Get early access

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 2025
2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 22
  1. 0.14.3 26 May 2025
    Release notes

    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]>

    Open source →
  2. 0.14.2 02 Aug 2024

    Nothing published for this version

  3. 0.14.1 18 Jul 2024
    Release notes

    Changes:

    • Switch from dirs-next to dirs
    Open source →
  4. 0.13.2 21 May 2024
    Release notes

    Instead of depending on rust-freetype which in turn depends on
    freetype-sys, just depend on freetype-sys directly.

    Open source →
  5. 0.13.1 13 May 2024
    Release notes

    Bump version to 0.13.1 (#240)

    Open source →
  6. 0.13.0 20 Mar 2024
    Release notes
    • 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
    SelectionError enum. It removes Copy because Cow isn'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 String would 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.

    Open source →
  7. 0.12.0 01 Dec 2023
    Release notes

    Update to version 0.12 in preparation for release (#222)

    Open source →
  8. 0.11.0 28 Mar 2022
    Release notes

    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 -lm
    

    Instead 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.

    Open source →
  9. 0.10.1 08 Jun 2021
    Release notes

    Update pathfinder_simd.

    Fixes #177.

    Open source →
  10. 0.10.0 28 Jul 2020

    Nothing published for this version

  11. 0.9.1 10 Jul 2020

    Nothing published for this version

  12. 0.9.0 17 Jun 2020

    Nothing published for this version

  13. 0.8.0 03 Jun 2020

    Nothing published for this version

  14. 0.7.1 30 May 2020

    Nothing published for this version

  15. 0.7.0 12 May 2020

    Nothing published for this version

  16. 0.6.0 14 Apr 2020

    Nothing published for this version

  17. 0.5.0 07 Dec 2019

    Nothing published for this version

  18. 0.4.0 23 Jul 2019

    Nothing published for this version

  19. 0.3.1 10 Jun 2019

    Nothing published for this version

  20. 0.2.0 28 May 2019

    Nothing published for this version

  21. 0.1.0 19 Sep 2018

    Nothing published for this version

  22. 0.0.0 24 Jul 2018

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive