Ferus is a web engine written (mostly) written from scratch in Nim. It has a few main components: Bali (the JavaScript engine written from scratch in Nim), Stylus (the CSS3 parser), ferusgfx (the rendering pipeline) and ferrite (the unicode utilities library)
Ferus has just hit version 0.2.5 after about a month of commits.
We now have support for the window.open() API in JavaScript, as well as support for color and text-decoration properties in CSS. Speaking of which, I ended up adding support for fetching stylesheets from the web with <link rel>.
The Windy backend has been deprecated in favor of GLFW, which allows me to focus on more important things than maintaining two windowing backends. Bali also got bumped to a new development release, which brings support for try-catch expressions in JavaScript.
There's also a major stability improvement with the after-exit cleanup. Ferus now properly shuts down all child processes when the user asks the browser to close.
An IPC bug that hammered the CPU at 100% has also been fixed.
Here's CNN's lite version being rendered by Ferus, at a smooth framerate while the system is in power saving mode: https://files.catbox.moe/lm9l5r.mp4
Here's the source code if you'd like to check it out for yourselves:
My next course of action is improving the janky layout to the point that most websites are readable.