$ cat saffron.md | glowSaffron
A lightweight, extensible, and dead-simple retained-mode UI framework written in C and SDL3.
I looked at the current state of UI frameworks.
And so, as I do, I decided to make my own lightweight and extensible UI framework on top of SDL3.
There are currently a few things TODO in Saffron, as it is currently in alpha. For this reason, I would not recommend using it in production at the moment.
$ cat sfwk.md | glowSaffronWebKit
WPEWebKit bindings for Saffron, allowing you to embed webview widgets into any Saffron app with just a few lines of C.
When I was building Saffron, I thought it'd be really cool to rewrite cinnamon-browser with it once it was stable. The issue was, it's a custom UI framework, how does one put a browser in it? The answer: just write your own bindings! It can't be that hard... right? Right???? Right...
This took up way too much time and effort than I thought it would.
While Saffron itself is cross-platform, I cannot guarantee that SFWK will work across platforms because WPEWebKit, the library it is based on, is very much Linux-only. I am also yet to write documentation, but I am currently delaying that until Saffron itself has a stable API, because SFWK is subject to change based on what happens in Saffron's codebase.
$ cat cinnamon.md | glowcinnamon-browser
A lightweight suckless-inspired vimlike browser written in C, powered by WebKit2GTK-4.1 and GTK3.
:For a while, I was a long-time user of qutebrowser, a popular vim-like browser written in Python and PyQtWebEngine. It was a great browser, and worked very well for my use cases, but eventually, I ran into an issue: the browser was too heavy on my system. Even though back then I used a MacBook Pro M2, which is a powerful machine, I only had 8GB RAM, which, in this digital world, is absolutely nothing. Open too many Chrome tabs? Good luck, mr. OOM killer has come to your doorstep. Because qutebrowser is powered by PyQtWebEngine, which in turn is powered by Chromium, it tends to be quite heavy on my system and eat a lot of RAM.
So, to fix this problem, there was only one proper way. MAKE YOUR OWN BROWSER IN C AND WEBKITGTK!!!!!!!!!!!!!!!!!!!!!!!!!
This project will eventually be deprecated as I plan to rewrite it in Saffron, my UI framework. Why, you might ask? Because who doesn't want to have a custom browser written in their own custom UI framework AND their own custom browser engine bindings for that UI framework?! How, you might ask? With SFWK, of course! Did you not read the project listings above?
$ cat frenchtoastos.md | glowFrenchToastOS
A simple from-scratch OS for x86 systems written in C.
This was originally for Boot, a Hack Club YSWS (You Ship, We Ship), but I may or may not have gotten distracted with other projects...
I might continue working on FrenchToastOS, but I have no guarantees.
$ cat zwzn-freefit-re.md | glowzwzn-freefit-re
Reverse-engineering of sketchy Chinese watches
There is a better and longer explanation in the Git repo's README itself, but to keep it short:
I also wrote a small Android companion app for these watches, as a replacement to the original. I can no longer add more features or test anything in relations to reverse-engineering or the companion app, because I may or may not have broke the watch...
You can find the companion app here.