Experimenting with a new layout engine
Published on October 28, 2025 by HRJ
The layout engine in gngr was designed in the CSS1 era. It was updated to support CSS2 during the conversion from Lobo Browser to gngr. However, it needs a whole new approach to support newer standards and to keep it maintainable.
I have been working on a prototype here:
https://github.com/LiMium/soda
... partly to improve my understanding and partly to use it as a playground for design ideas.
It is written in Scala to allow quick iterations. The plan is to eventually migrate to Java or Kotlin.
I have been working on a prototype here:
https://github.com/LiMium/soda
... partly to improve my understanding and partly to use it as a playground for design ideas.
It is written in Scala to allow quick iterations. The plan is to eventually migrate to Java or Kotlin.