Skia is a great library, but as all things Google it's a pain to build. They don't use CMake and building it from source takes 20-30 minutes on a modern laptop. Furthermore, it's constantly changing its APIs and much of it is undocumented and unclear on how to use optimally. Most of the decisions taken by development team aren't discussed in the open and this makes it hard to understand the codebase.<p>I wish there was a nice and small vector graphics library with GPU acceleration. So far Skia is the only real option, despite its downsides.
Couple things I've seen in this space looking around the past couple weeks...<p>Flutter made a different engine called Impeller[0] which is replacing Skia. Which is a bit surprising as an ignorant outsider. I hope that works out.<p>Rive (<a href="https://rive.app" rel="nofollow">https://rive.app</a>), is a new animation tool that targets multiple platforms including web and their CEO Guido Rosso gave a great interview on School of Motion[1] about how they are building an animation first vector engine. There is a side by side demo at 46:56[2] of Skia, Impeller and Rive.<p>0: <a href="https://docs.flutter.dev/perf/impeller" rel="nofollow">https://docs.flutter.dev/perf/impeller</a><p>1: <a href="https://www.youtube.com/watch?v=U0Jd5-eStu4&t=2514s" rel="nofollow">https://www.youtube.com/watch?v=U0Jd5-eStu4&t=2514s</a><p>2: <a href="https://youtu.be/U0Jd5-eStu4?si=8vv3c2bw3VumLzeu&t=2816" rel="nofollow">https://youtu.be/U0Jd5-eStu4?si=8vv3c2bw3VumLzeu&t=2816</a>
I was curious how Igalia was funded and this was a surprisingly good interview on how they’re structured, how they work with the major browser companies, etc… Apparently many Apple, Google, Firefox engineers left to work for them.<p><a href="https://thenewstack.io/igalia-the-open-source-powerhouse-youve-never-heard-of/" rel="nofollow">https://thenewstack.io/igalia-the-open-source-powerhouse-you...</a>
Uhm, I am a bit sad that bringing Cairo up to speed isn't easier, as Cairo is an easier to use dependency than Skia.<p>I always find building these complex stuff from Google a huge pain - and now they have the additional idea of living on the head and not providing actual releases too...
The title of the article has changed to make it clearer than it only concerns the GTK and WPE ports.<p>"WebKitGTK and WPEWebKit Switching to Skia for 2D Graphics Rendering"<p>Can we update the title here also?
I think this are good news for <i>WebKitGtk</i>.<p>I wondered about the license because they had already problems with LibWebTRC which uses BoringSSL (BSD-License). Skia seems to use the new BSD-License without the <i>advertising clause</i> and is therefore compatible with the GPL.<p>PS: As <i>valleyer</i> mentions - this affects <i>WebKitGtk</i> not all <i>WebKit</i> ports? At least Skia is usable on MacOS/iOS.
Could someone who knows Skia internals describe, if possible, the tradeoffs that Skia has made between performance, rendering quality and API DX?<p>Presumably this is partly why it has become so popular, but as someone who's been writing mostly 2D GL/WebGPU apps for a decade I've only briefly considered a Skia as an alternative, but this is mostly out of ignorance.
I thought always that Safari was the fastest to render web pages on Mac/iOS. But sounds like I was wrong?<p>> In December 2023 we made the decision of giving Skia a try internally and see if it would be worth the effort of maintaining the project as a third party module inside WebKit. In just one month we had implemented enough features to be able to run all MotionMark tests. The results in the desktop were quite impressive, getting double the score of MotionMark global result. We still had to do more tests in embedded devices which are the actual target of WPE, but it was clear that, at least in the desktop, with this very initial implementation that was not even optimized (we kept our current architecture that is optimized for CPU rendering) we got much better results.
I really like how much utility we've all managed to get from Cairo. It is everywhere.<p><a href="https://en.wikipedia.org/wiki/Cairo_(graphics)#Notable_usage" rel="nofollow">https://en.wikipedia.org/wiki/Cairo_(graphics)#Notable_usage</a><p>I don't know the full story behind it, but from an outsider's point of view, any open library that pulls that kind of weight for so long should be considered a major feat of engineering.
Somewhat connected question, what is WPE? It’s <i>something</i> that got abstracted out of WebkitGTK, right? Is it a standalone port itself, or is it more like the framework to build a highly specialized one? I’ve seen at least in past versions that libwpe is an optional dependency of WebkitGTK, so they didn’t like abstract and then rebase it on the new component. Or is libwpe separate from WPE?
If Apple adopts Skia in its own versions of WebKit, then Quickdraw GX's grandchild will have come home:<p>[1] <a href="https://en.wikipedia.org/wiki/QuickDraw_GX" rel="nofollow">https://en.wikipedia.org/wiki/QuickDraw_GX</a><p>[2] <a href="https://en.wikipedia.org/wiki/Skia_Graphics_Engine" rel="nofollow">https://en.wikipedia.org/wiki/Skia_Graphics_Engine</a>
I wish WebKit GTK was more performant in general (and also in the MDN compatibility list but its another topic). It is getting better but it really is a blocker on shipping quality application with Tauri on Linux. There is a reason most apps using native webviews only target macos and windows, WebKit GfK is mostly undocumented for frontend engineers and often very much outdated / not installed on end user machines.
Please have a look at this one: <a href="https://github.com/thorvg/thorvg">https://github.com/thorvg/thorvg</a>.
ThorVG is portable and super lightweight, and it's currently undergoing development with WebGPU.
FFS why are the fonts so small?<p>Why do I have to increase the font size 150% to read it comfortably?<p>How can we trust a browser created by developers who seem incapable of creating readable web pages?<p>They should be capable of dogfooding their own output on the most basic level.
> but none of them met all our requirements, so we decided to try writing our own library.<p>Question requirements.<p>You can always find a reason to build rather than buy, but can you reframe your requirements in such a way that you can get away with something off the shelf and then rather spend your resources on the things that you can do uniquely different for your application.