rustybuzz is an attempt to incrementally port harfbuzz to Rust.
harfbuzz does a lot of things (shaping, subseting, font querying, etc.),
rustybuzz is strictly an OpenType shaper.
You can use it already, since we simply linking
And we're testing
harfbuzz test suite.
harfbuzz version: 2.6.4
- Subsetting is out of scope and removed.
- Malformed font is an error now.
harfbuzzaccepts malformed fonts, but doesn't do shaping in this case.
harfbuzzconfigured to not depend on system libraries, like glib, coretext, freetype, icu. So it relies only on internal implementation, which should be enough in most cases.
Notes about the port
Thanks to Cargo,
rustybuzz is pretty modular, unlike
harfbuzz, which is basically a monolith.
And it can be roughly split into these modules: shaping, subsetting, font parsing, Unicode functions,
containers and utilities.
rustybuzz implements only the shaping. Font parsing is handled by the
ttf-parser, which is not based on
has its own architecture. Unicode functions also handled by external crates.
And most of the containers and utilities were already implemented in the Rust std.
rustybuzz is licensed under the MIT.
harfbuzz is licensed under the Old MIT