NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #1647 most downloaded on crates.io
A simple, in-memory font database with CSS-like queries.
Last release 2 months ago
29 Jul 2026
Ships unpredictably
gaps range from 9 days to 1.8 years
Nearly every release is documented
notes for 38 of 39 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
39 releases · first in 2020
One column per quarter.
Support loading system fonts on iOS.
fontdb no longer depends on ttf-parser. It vendors a minimal subset instead.log.### Changed - ttf-parser updated.
ttf-parser updated.Fallback to known font dirs if none were loaded via fontconfig. Linux-only. @MoSal
Symlinked files and directories will now be included when loading system fonts. @jcdickinson
### Changed - ttf-parser updated.
ttf-parser updated.### Changed - ttf-parser updated.
ttf-parser updated.Database::push_face_info returns an ID now. @laurmaedje
Database::push_face_info returns an ID now.
@laurmaedjeUp to 10% faster Database::load_system_fonts. @qarmin and @y5
System fonts loading on Windows when the system drive is not C:\\. @tronical
C:\\.
@tronicalTreat fonts with non-zero italic angle as italic.
ttf-parser and memmap2 dependencies update.
ttf-parser and memmap2 dependencies update.Enable the fontconfig feature by default. Linux-only.
fontconfig feature by default. Linux-only.log.Return valid IDs from Database::load_font_source(). @notgull
Database::load_font_source().
@notgullDatabase::load_font_source() returns a list of loaded face IDs now. @notgull
Database::load_font_source() returns a list of loaded face IDs now.
@notgullttf-parser and memmap2 dependencies update.Load system fonts on RedoxOS. @FloVanGH
Database uses slotmap::SlotMap instead of Vec as an internal storage now. This allows us to have O(1) indexing by ID by sacrificing faces iteration sp
Database::default(). @7sDreamslotmap::SlotMap instead of Vec as an internal storage now.
This allows us to have O(1) indexing by ID by sacrificing faces iteration speed a bit.
@7sDreamDatabase::remove_face no longer returns bool.Database::faces returns an Iterator and not a slice now.### Fixed - Face weight matching.
Implement Display trait for ID. @7sDream
Display trait for ID. @7sDreamAlways prefer _Typographic Family_ to _Family Name_ when available. @CryZe
Support localized family names.
FaceInfo::family was replaced with FaceInfo::families and contains a list of family
names now.### Added - no_std support. @jackpot51
no_std support. @jackpot51Database::family_name is public now.
Database::family_name is public now.Expand home path ~ prefix during fontconfig paths resolving. @snoyer
Database::push_face_infoID::dummy~ prefix during fontconfig paths resolving.
@snoyerReduce binary size by 10% using less generic code.
Way faster fonts scanning by using a more low-level ttf-parser API which allows us to parse only required TrueType tables. On my hardware, load_system
ttf-parser API
which allows us to parse only required TrueType tables.
On my hardware, load_system_fonts() loaded 898 fonts in 9ms instead of 11ms in the release mode
and in 35ms instead of 52ms in debug.
Currently, we're parsing only name, OS/2 and post tables.fontconfig feature to allow retrieving font dirs from the fontconfig config file instead of using hardcoded paths. Linux-only. @Riey
fontconfig feature to allow retrieving font dirs from the fontconfig config file
instead of using hardcoded paths. Linux-only. @RieyThe Source enum has a new variant SharedFile, used for unsafe persistent memory mappings.
Source enum has a new variant SharedFile, used for unsafe persistent
memory mappings.FaceInfo stores Source directly now, not anymore in an Arc. Instead Source::Binary
now stores an Arc of the data.Fix compilation without the fs feature.
fs feature.Split the fs build feature into fs and memmap. @neinseg
fs build feature into fs and memmap. @neinsegSearch in $HOME/.fonts on Linux. @Linus789
$HOME/.fonts on Linux. @Linus789None.Implement Eq, Hash for Query, Family, Weight and Style. @dhardy
### Changed - Update ttf-parser
ttf-parserAdd additional search dir for macOS.
memmap2### Fixed - Compilation on Windows.
### Added - FaceInfo::post_script_name - FaceInfo::monospaced - Database::load_system_fonts
FaceInfo::post_script_nameFaceInfo::monospacedDatabase::load_system_fontsUse a simple u32 for ID instead of UUID.
u32 for ID instead of UUID.### Changed - ttf-parser updated.
ttf-parser updated.Stretch processing. ttf-parser was incorrectly parsing this property.
ttf-parser updated.ttf-parser was incorrectly parsing this property.Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →