node-fontnik - Fonts ⇢ protobuf-encoded SDF glyphs

  •        307

A library that delivers a range of glyphs rendered as SDFs (signed distance fields) in a protocol buffer. We use these encoded glyphs as the basic blocks of font rendering in Mapbox GL. SDF encoding is superior to traditional fonts for our usecase terms of scaling, rotation, and quickly deriving halos - WebGL doesn't have built-in font rendering, so the decision is between vectorization, which tends to be slow, and SDF generation.The approach this library takes is to parse and rasterize the font with Freetype (hence the C++ requirement), and then generate a distance field from that rasterized image.


glob : ^7.1.1
minimist : ^0.2.0
nan : ^2.1.0
node-pre-gyp : ^0.6.31
queue-async : ^1.0.7



Related Projects

The FreeType Project - A free, high-quality, and portable font engine

  •    C

FreeType is a software font engine that is designed to be small, efficient, highly customizable, and portable while capable of producing high-quality output (glyph images). It can be used in graphics libraries, display servers, font conversion tools, text image generation tools, and many other products as well.

fontkit - An advanced font engine for Node and the browser

  •    Javascript

Fontkit is an advanced font engine for Node and the browser, used by PDFKit. It supports many font formats, advanced glyph substitution and layout features, glyph path extraction, color emoji glyphs, font subsetting, and more. Opens a font file asynchronously, and calls the callback with a font object. For collection fonts (such as TrueType collection files), you can pass a postscriptName to get that font out of the collection instead of a collection object.

OpenGL/FreeType Text Rendering Library

  •    C++

OGLFT is an interface library between OpenGL and FreeType 2 for rendering text. It supports all font file types supported by FreeType 2. Text can be rendered as bitmap, anti-aliased grayscale pixmaps, as outlined and filled polygons, or as 3D solids.



FW1FontWrapper is a font wrapper library for drawing text using Direct3D 11. It uses DirectWrite for formatting, text layout, and glyph caching, exposing basic DirectWrite text functionality for use with a D3D11 render target. The library is written in C++, and either compile...

freetype-gl - OpenGL text using one vertex buffer, one texture and FreeType

  •    C

A small library for displaying Unicode in OpenGL using a single texture and a single vertex buffer. Installation instructions.

awesome-terminal-fonts - Tools and instructions on how to have awesome symbols in a terminal with a monospace font

  •    Shell

Referring to glyphs by codepints (eg. \uf00c) in your scripts or shell configuration it's not recommended because icon fonts like Font Awesome use code points ranges those ranges are not disciplined by the unicode consortium, every font can associate every glyphs to those codepoints. This means that Font Awesome can choose to move glyphs around freely, today \uf00c is associated to the check symbol, tomorrow it can be associated to something else. Moreover, more than one icon font can use the same codepoint for different glyphs and if we want to use them both we need to move one of them. So, if you use a codepoint to refer to a glyph after an update that codepoint can point to another glyph. To avoid this situation you can use the font maps in the ./build directory, font maps are scripts which define shell variables that give names to glyphs, by sourcing those files in your shell you can refer to glyphs by name (eg. $CODEPOINT_OF_AWESOME_CHECK).

freetype - The Freetype font rasterizer in the Go programming language.

  •    Go

The Freetype font rasterizer in the Go programming language.


  •    Rust

This is a font renderer written (mostly) in pure, safe Rust. There is an optional SIMD module for cumulative sum, currently written in C SSE3 intrinsics.The current state of the code is quite rough. The code isn't well organized, and it's basically not ready for prime time. However, it runs well enough to run benchmarks, and those benchmarks suggest extremely promising performance compared with Freetype and freetype-go (the loose port of Freetype to Go).

rusttype - A pure Rust alternative to libraries like FreeType.

  •    Rust

RustType is a pure Rust alternative to libraries like FreeType. To hit the ground running with RustType, look at the example supplied with the crate. It demonstrates loading a font file, rasterising an arbitrary string, and displaying the result as ASCII art. If you prefer to just look at the documentation, the entry point for loading fonts is FontCollection, from which you can access individual fonts, then their glyphs.

BitIcon - A programming language glyph font.


A programming language glyph font.

webhostinghub-glyphs - WebHostingHub Glyphs is a most comprehensive set of glyph icons available as font


WebHostingHub Glyphs is the most comprehensive set of glyph icons available as font currently containing 2075 glyphs (and counting). The goal is to be fully compatible with Bootstrap and other frameworks and CMSs. It will be constantly updated so if you have ideas for new icons, do let us know.

fontisto - The iconic font and CSS toolkit

  •    CSS

Fontisto is a full suite of 616+ pictographic icons for easy scalable vector graphics on websites, created and maintained by Kenan Gündoğan. Stay up to date with the latest release and announcements on Twitter: @fontisto. Within the download you'll find the following directories and files, logically grouping common assets and providing both compiled and minified variations.

QtAwesome - QtAwesome - Font Awesome support for Qt applications

  •    C++

QtAwesome is a simple library that can be used to add Font Awesome icons to your Qt application. NOTE: Though the name is QtAwesome and currently it's very Font Awesome based, you can use every other icon/glyph font you want.

mapbox-gl-native - Interactive, thoroughly customizable maps in native Android, iOS, macOS, Node

  •    C++

A library for embedding interactive, customizable vector maps into native applications on multiple platforms. It takes stylesheets that conform to the Mapbox Style Specification, applies them to vector tiles that conform to the Mapbox Vector Tile Specification, and renders them using OpenGL. Mapbox GL JS is the WebGL-based counterpart, designed for use on the Web.If your platform or hybrid application framework isn’t listed here, consider embedding Mapbox GL JS using the standard Web capabilities on your platform.

fontstash - Light-weight online font texture atlas builder

  •    C

Font stash is light-weight online font texture atlas builder written in C. It uses stb_truetype to render fonts on demand to a texture atlas. The code is split in two parts, the font atlas and glyph quad generator fontstash.h, and an example OpenGL backend (glstash.h.


  •    C++

GLyphy is a signed-distance-field (SDF) text renderer using OpenGL ES2 shading language. The main difference between GLyphy and other SDF-based OpenGL renderers is that most other projects sample the SDF into a texture. This has all the usual problems that sampling has. Ie. it distorts the outline and is low quality.

CoreTextWrapper - An Objective-C wrapper around Core Text for creating multi-column text and loading custom fonts

  •    Objective-C

One of the most promising and mysterious new frameworks introduced in iOS 3.2 is Core Text. Apple defines Core Text as a “text drawing engine”, which allows Mac (and now iPad) apps to render rich text on any graphics context. Strings drawn with Core Text feature lots of custom settings such as detailed font information, columns, variable line and paragraph heights and several different attributes, which designers and font aficionados surely understand much better than I do. Many new apps have been using this framework since the release of the iPad, particularly newspapers and ebook reader applications, rendering gorgeous text in custom fonts, many of them not available natively in iOS. This framework is also used in lifestyle and corporate applications, too, where using a custom font is sometimes required to match the specifications of brands and trademarks. It is very important to understand that Core Text is really just a text drawing engine to be used on top of Quartz (Core Graphics), to render rich text on any graphics context. Core Text cannot be used to create a rich text editor, for example, so don’t expect to extend UITextView with it. But you can use it to draw any kind of rich text on screen, which can make you avoid using UIWebView instances for that.


  •    Java

DoubleType is a type designer (font editor) that builds TrueType font files. Thanks to Java, it runs on Windows, Linux, amp; Mac. Glyphs are stored in XML based file to aid teamwork. Efficient glyph design by combining existing glyphs and modules.

tileserver-gl - Vector and raster maps with GL styles

  •    Javascript

Vector and raster maps with GL styles. Server side rendering by Mapbox GL Native. Map tile server for Mapbox GL JS, Android, iOS, Leaflet, OpenLayers, GIS via WMTS, etc. Make sure you have Node.js version 6 installed (running node -v it should output something like v6.11.3).

tileserver-gl - Vector and raster maps with GL styles

  •    Javascript

Vector and raster maps with GL styles. Server side rendering by Mapbox GL Native. Map tile server for Mapbox GL JS, Android, iOS, Leaflet, OpenLayers, GIS via WMTS, etc. Make sure you have Node.js version 10 installed (running node -v it should output something like v10.17.0).

We have large collection of open source products. Follow the tags from Tag Cloud >>

Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.