Our great sponsors
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
seesaw is still viable and runs on swing, which will run everywhere, probably forever. It's a bit closer to the underlying event model than the react style rendering in cljfx.
I built membrane for exactly this use case, https://github.com/phronmophobic/membrane. The graphics and event model is pure clojure with support for multiple platforms. Membrane is less mature than some of the other JVM options, but Swing/AWT/JavaFX have their own quirks.
I you consider seesaw, I forked it and added virtual dom functionality: https://github.com/ertugrulcetin/seesaw
I built code3dworld with re-frame + shadow-cljs + electron. The experience was really smooth and nice. If you need a desktop app, I highly suggest using this combination, I checked cljfx, but it seemed hard to be productive and flexible.
Tauri[0] seems to be working with Clojurescript too, but backend would be Rust Another similar options is Wails [1] but backend would be Go. These projects work similar to Electron but instead of bundling Chrome they use host OS's webview. To go full lisp, maybe something similar can be possible with Janet + Cljs too. [0] https://tauri.studio/en/ [1] https://github.com/wailsapp/wails
You can take a look at Skija from Jetbrains. It's a wrapper around the Skia library used by Chrome, Xamarin, LibreOffice, among others.