font-rs | harfbuzz | |
---|---|---|
1 | 37 | |
755 | 4,103 | |
- | 1.6% | |
10.0 | 9.7 | |
about 4 years ago | 8 days ago | |
Rust | C++ | |
Apache License 2.0 | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
font-rs
harfbuzz
-
Tim Peters – Dispelling Information Asymmetry
>They do have "Developers in Residence" now
Yes - three of them, out of dozens of core developers, selected by a process I can't discern. Of course, right now the money simply isn't there to compensate everyone appropriately. (But one wonders why the Steering Council apparently suddenly requires a "Communications Liaison".)
>The sooner we end this era of "the entire world runs on the good will of bored nerds volunteering their time", the better.
Python is nowhere near the only project with this problem. If you appreciate the fact that your computer can properly display text in non-European languages, consider offering some support to Behdad Esfahbod, main developer of Harfbuzz (https://github.com/harfbuzz/harfbuzz).
As far as I can tell, Linux and Mozilla are the only two open-source organizations that have any significant revenue behind them. Most are probably even worse off than Python.
-
Show HN: Handwriter.ttf – Handwriting Synthesis with Harfbuzz WASM
Font includes WASM code that harfbuzz executes for shaping: https://github.com/harfbuzz/harfbuzz/blob/main/docs/wasm-sha...
It's an experimental feature, so it's not available unless explicitly enabled during compilation.
-
Font as Tetris
You can also build harfbuzz as described here [2] and load it into some program. I used to just install it globally on arch and then use Gimp for the Bad apple example.
And lastly the same person who made the maze also made a way to use LD_PRELOAD to load a custom harfbuzz into arbitary software so you can follow that guide as well: [3]
[0]: https://github.com/hsfzxjy/Harfbuzz-WASM-Fantasy
[1]: https://github.com/harfbuzz/harfbuzz-wasm-examples
[2]: https://github.com/harfbuzz/harfbuzz/blob/main/docs/wasm-sha...
[3]: https://github.com/hsfzxjy/Bad-Apple-Font
- HarfBuzz: Text Shaping Engine
- Rive Renderer – now open source and available on all platforms
-
Libsodium: A modern, portable, easy to use crypto library
For C/C++ projects that use meson as the build system, there is an excellent way to manage dependencies:
https://mesonbuild.com/Wrapdb-projects.html
https://mesonbuild.com/Wrap-dependency-system-manual.html
meson will download and build the libraries automatically and give you a variable which you pass as a regular dependency into the built target:
https://github.com/qemu/qemu/tree/005ad32358f12fe9313a4a0191...
https://github.com/harfbuzz/harfbuzz/tree/main/subprojects
https://github.com/harfbuzz/harfbuzz/blob/37457412b3212463c5...
Or, if you're using proper operating systems, they're managed by the usual package manager, just like everything else.
- The Web Assembly Shaper
-
Text Rendering Hates You
If you sympathize with the travails of people working on text rendering in applications, please consider supporting (among other projects):
1. The LibreOffice project (libreoffice.org), the free office application suite. This is where the rubber hits the road and developers deal with the extreme complexities of everything regarding text - shaping, styling, multi-object interaction, multi-language, you name it. And - they/we absolutely need donations to manage a project with > 200 million users: https://www.libreoffice.org/donate
2. harfbuzz (https://harfbuzz.github.io), and specifically Behdad Esfahood the main contributor. Although, TBH, I've not quite figured out whether you can donate to that or to him. At least star the project on GitHub I guess.
-
ImGui or text rendering libraries
As for text, it depends very heavily on what exactly you need. Simple ASCII text and bitmap fonts? Just do it yourself or get a .bdf parser. Simple Latin/Cyrillic-like writing with ok-looking vector fonts (ttfs)? stb_truetype has all you need. Font hinting, subpixel rendering? You use freetype. More complex writing like Arabic? You will have to do shaping as well, say with HarfBuzz. Need right-to-left or unidirectional text? Hypenation? Go for platform APIs if you can (DirectWrite om Windows, CoreText on Mac).
What are some alternatives?
WebKit
imgui-sfml - Dear ImGui backend for use with SFML
htmlwg - HTML Working Group
nanovg - Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations.
ab-glyph - Rust API for loading, scaling, positioning and rasterizing OpenType font glyphs
contour - Modern C++ Terminal Emulator
hayagriva - Rusty bibliography management.
c-ares - A C library for asynchronous DNS requests
imgui_sdl - ImGuiSDL: SDL2 based renderer for Dear ImGui
icu - The home of the ICU project source code.
Tehreer-Android - Standalone text engine for Android aimed to be free from platform limitations
msdfgen - Multi-channel signed distance field generator