harfbuzz
icu
harfbuzz | icu | |
---|---|---|
38 | 18 | |
4,279 | 2,907 | |
2.7% | 2.2% | |
9.7 | 9.7 | |
2 days ago | 8 days ago | |
C++ | C++ | |
GNU General Public License v3.0 or later | 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.
harfbuzz
-
Egui – An immediate mode GUI written in Rust
Text shaping is anything but easy. Harfbuzz is probably the state of the art open source solution - https://github.com/harfbuzz/harfbuzz
Used in in Android, Chrome, ChromeOS, Firefox, GNOME, GTK+, KDE, Qt, LibreOffice, OpenJDK, XeTeX, PlayStation, Microsoft Edge, Adobe Photoshop, Illustrator, InDesign, Godot Engine, Unreal Engine, ...
-
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.
icu
- Debian opens a can of username worms
-
C Macro Reflection in Zig – Zig Has Better C Interop Than C Itself
This sounds amazing, and it's great that tooling is so strong of some "new kids on the block" (Zig, Rust), even better than C.
With hindsight, it is strange that the C community, with all the people and money behind it (and what scale!) never even managed to build a proper packaging manager (okay, there's now Conan, but that came from Python guys).
But then, there even still isn't a perfect C string library around (something that would combine GLib, SDS, ICU, say, and then standardize it in C2038).
[1] Hanson's C: Interfaces & Implementations (CII) - Str: https://cii.s3.amazonaws.com/book/pdf/quickref.pdf
[2] ICU - https://icu.unicode.org
[3] SDS - https://github.com/antirez/sds
[4] GLib - https://docs.gtk.org/glib/struct.String.html
- 排序(collation)探究
- FreeBSD replaces bubblesort with mergesort on SYSINTs, results in 100x speed
-
Get wide characters one by one from a char * string
If you want graphemes, something lile libgrapheme might suit you. If just code points, then the utf8.h from ICU can work, but you can also roll your own if needed.
- Fatal error when I'm trying to build SQLite for Android with ICU enabled
-
Should golang create a money library on the exp package?
OP, is this money in the context of storing and counting money, or money in the context of internationalization and localization? For the latter, you probably want bindings to icu or the x/text/currency package.
-
Setting the TZ environment variable avoids thousands of system calls
https://github.com/unicode-org/icu/pull/2213
This affects all packages that have icu as a dependency, one of them being Node.js.
https://github.com/nodejs/node/issues/37271
I discovered this the hard way when some code malfunctioned shortly after daylight savings time kicked in.
-
PSA: Node 18.13+ changed date/time formatting
No clue! It seems like a very deep rabbit hole to go down. You can start here: https://github.com/unicode-org/icu Version 72 I believe is when this was changed.
-
Charlock_holmes installation error, Windows 11.
Installing icu4c from https://github.com/unicode-org/icu/releases/tag/release-71-1 and put the path in "--with-icu-lib"
What are some alternatives?
imgui_sdl - ImGuiSDL: SDL2 based renderer for Dear ImGui
binwalk - Firmware Analysis Tool
nanovg - Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations.
manticoresearch - Easy to use open source fast database for search | Good alternative to Elasticsearch now | Drop-in replacement for E in the ELK soon
imgui-sfml - Dear ImGui backend for use with SFML
utfcpp - UTF-8 with C++ in a Portable Way
contour - Modern C++ Terminal Emulator
apertium-tha - Apertium linguistic data for Thai
c-ares - A C library for asynchronous DNS requests
docker - Official docker for Manticore Search
Tehreer-Android - Standalone text engine for Android aimed to be free from platform limitations
apertium - Core tools (driver script, transfer, tagger, formatters) for the FOSS RBMT system Apertium