#emoji #text-rendering #font #unicode #graphics

hieroglyph

Render obscure scripts and emojis locally with zero dependencies

1 unstable release

Uses new Rust 2024

new 0.1.0 Apr 5, 2025

#9 in #text-rendering

MIT license

9.5MB
531 lines

hieroglyph

Render obscure scripts and emojis locally with zero dependencies.


Crates.io Docs.rs License

hieroglyph is a text shaping and layout engine for rendering Unicode and emoji content without any system font dependencies. It uses statically embedded Noto and Twemoji fonts to produce pixel-precise output directly into RGBA buffers, suitable for GUIs, image generation, or text rendering in headless environments.

Installation

[dependencies]
hieroglyph = "0.1"

Usage

use hieroglyph::{DrawingContext, Segments};

let ctx = DrawingContext::new();
let segments = Segments::new("Hello 🌍 𓂀");

ctx.draw(&segments, |(x, y), color| {
    your_pixel_buffer.set_pixel(x, y, color.to_rgba());
});

Fonts

All required fonts are bundled into the binary:

At runtime, the font system maps each character to the correct asset in memory, with no external dependencies. Additional fonts can be manually registered if needed.

License

This project is licensed under the MIT License.

Dependencies

~35MB
~378K SLoC