I was aware of cairo, skia, nanovg, the Qt drawing libs, and the ones with OpenGl and Vulkan backends FastUiDraw and VkVg. Recently I heard of Blend2d.
Cairo is known for good quality and various backends, but has limited speed and no threading support. Drawing quality is less important as high DPI displays become more popular. The GPU supported libs FastUiDraw and VkVg may have their own problems, and I never saw performance comparisons to cairo. But Blend2d offers comparisons, and seems to be much faster than cairo in most examples. Unfortunately currently there are only GUI examples for Qt provided.
So I wonder if it may be possible to use Blend2d with GTKDrawingArea? I would assume that we would have to generate a cairo compatible source surface and blit it to the cairo context for each draw call? Should be some overhead unfortunately. Although memory bandwidth is generally more than 10 GB/s for a 8k display that blit may take a few ms in best case, which is a significant amount of course when the display has a 120 Hz refresh rate. So I am not sure if testing Blend2d in GTK would make sense at all? Maybe for very dynamic interactive data, like 2D CAD, 2D games and street map display. E.g for zooming operations where smart caching parts of the picture do not work? Or for situations where many entities move at the same time. For GTK4 we have GSK with vulkan support now of course, which may be used internally. But I am not aware of its use for custom drawing as done with the GtkDrawingArea.
License is zlib, which is called compatible with GPL. Well it is written in C++, but has a C API.