WebKit is horrible.
Previously Quadrant used to use WebKit as its browser engine on Linux. Its current state is "barely usable". I've previously mentioned that I've played around with AI trying to split Quadrant's UI and backend.
Splitting Quadrant into parts
Thanks to assistance from Codex, I've split Quadrant into a few parts
- The Frontend
- The Host
- The Core
The Core is more of a library that provides the needed implementations for Quadrant ID, Quadrant Share/Sync, CurseForge and Modrinth. You can even use it for your own products by stripping out the Quadrant ID features
The Host acts as a bridge between Tauri/Electron and the Core. It implements stuff like storage/settings saving, etc.
Then the frontend calls Tauri or Electron based on what's the app distributed with.
The concerning part
I've written 0 lines of code for this, everything was done by Codex and I was checking the changes made by it. However, I am still not fully sure whether this is worth merging into the main branch of Quadrant.
The pros
- Significantly better platform support
- The ability to get rid of Tauri and not be dependent on their sometimes annoying practices (such as not updating some old dependencies on time, which has caused me to move away from them once in the past)
- A more rich ecosystem for the desktop
The cons
- Higher RAM usage (due to using a full CEF window)
- Higher bundle sizes (Because Electron packages CEF)
- A more complicated codebase, which is harder to develop, because it basically operates on hurdles to keep up with both Tauri and Electron
Preview this experiment now
You can checkout the Electron builds of Quadrant now. They seem to be feature complete in my testing so far with no regressions. However, I would encourage you to go and try it out for yourself. Please provide feedback by opening an issue on GitHub!
Quadrant now can run on Electron!
I've managed to get Quadrant to work pretty well with Electron