Simple, performant and compatible 2D rendering crate.
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
Jens Pitkänen 4465cc8796 Add todos for 0.6.0 vor 1 Stunde
examples Add fae::Error and clean up and vor 1 Tag
src Add todos for 0.6.0 vor 1 Stunde
.gitignore Remove accidentally added file, prevent future accidents vor 10 Monaten
Cargo.lock Clean up and update deps vor 1 Tag
Cargo.toml Clean up and update deps vor 1 Tag Add license, set windows subsystem in examples vor 1 Jahr Clean up vor 1 Tag Refactor public api to be easier to understand vor 2 Tagen Simplify version selection vor 1 Monat


Fae is a simple, performant, and compatible 2D rendering crate built on top of glutin, with optional text rendering functionality.

Fae’s main design goals are simplicity and performance while supporting older/low-end target platforms. The optional text-rendering feature text can draw multi-line, cached text with the font8x8 (a font-in-a-crate consisting of very densely encoded 8x8 glyphs) and rusttype (ttf rasterizer) crates. So no ligatures or other sophisticated font rendering.

Fae supports OpenGL 2.1 and OpenGL ES 2.0 contexts, but will do some optimizations (VAOs, instanced rendering) if a newer context (3.3+/ES 3.0+) is available.

This is not a serious contender intended to replace any general 2D rendering crates. I’m developing this as an exercise to learn about OpenGL and text rendering, with an eventual goal of being usable for my own applications. Use with caution!

Important note

Fae is currently under development, and I wouldn’t recommend it for any kind of usage yet. It’s on mostly so I don’t have to come up with another name :)

Cargo features

  • The png feature implements the Image::with_png function, which allows you to load images from PNG data. This is a very convenient feature, but not necessarily a requirement for using the crate, so it’s optional. Also, it’s a noticeable bump in executable size, so use with caution, if you’re going for minimal exes.
  • The text feature implements the text mod, which has functionality for drawing strings, including multi-line wrapping, text alignment, and glyph caching. It does not provide any functionality for rasterizing glyphs from fonts.
    • The font8x8 feature provides text rendering with the font8x8 font, via Font::with_font8x8.
    • The ttf feature provides text rendering with any TTF font (rasterized by rusttype), via Font::with_ttf. Crate recommendation for getting ttfs from the system: font-loader.
  • The profiler feature implements the profiler mod. Everything in the minreq::profiler module is a no-op if this feature is disabled.

Issues / contributing

If you come across bugs, other issues or feature requests, feel free to open an issue on GitHub. Pull requests are welcome as well, though keep in mind that this is supposed to be a relatively minimalistic crate, so I probably won’t include any considerable new functionality. If in doubt, open an issue!


The fae crate is distributed under the MIT license.