Solenoid: yet another desktop application framework

solenoid: yet another desktop application framework


solenoid is a framework for making desktop applications. You know maybe about Electron and Tauri. The project started as Tauri clone in Zig.

I used zig-gobject bindings. but for v0.17.0 but it isnt available at the time of starting the project. so i forked zig-gobject repository and updated it to v0.17.0 version of Zig. Currently my PR got merged!

So finally i had the bindings. Then i started writing the rendering stuff. It was fantastic, i rendered my first html, css and js files. Browse source

After that, i wrote command/plugin system. I keep the command logic very simple. you only throwing fetch request from your frontend code. Then Zig side parses it and executes the command.

The assets generators job is finding the MIME type of your frontend files and maps them into a zig struct. I forked zmime, added 0.17.0 compability and added more filetype support.

About cross-platform compability, currently only supports Linux because it uses WebKitGTK. I wrote a cross-platform window management library like webview, named as pencere
I will implement it to solenoid sometime. But i havent tested it on Windows and macOS very well. it needs more work.

I use Zine for the website. Thanks Loris Cro and the contributors.

You can check out the examples

I know more or less that no one will do this, but I’ll warn you anyway: dont use it in production (yet) :slight_smile:

Links

Code: https://codeberg.org/Erenay/solenoid
Website: https://solenoid.erenaydev.com.tr (I havent purchased a domain yet)
Zig Docs: https://solenoid-docs.erenaydev.com.tr/
pencere code: https://codeberg.org/Erenay/pencere
zmime code: https://codeberg.org/Erenay/zmime

Supported Zig versions

v0.17.0, master

AI / LLM usage disclosure

  • I used LLM to help me with the pencere code in a part of macOS. But im currently not importing it inside solenoid. I’m gonna delete that part and wait for macOS users to contribute.