UIs and networking in Julia

UIs and networks for Julia.

Escher/Interact ecosystem

Interact.jl is a UI/widget framework that is reasonably front-end agnostic. A web-app-style interface that can deploy to IDE, web server, or desktop electron via Bink.jl. How much tedious javascript management is required I do not know.

(If you really wanted to have lots of control and a proper web framework, you could use the web framework Genie.jl.)

Immediate mode

I can plug into classic C++ immediate mode Dear Imgui via CImGui.jl.

Reactive programming

Reactive.jl is widely used to manage signals in UI toolkits. It has a competitor Signals.jl, whose creator describes the differences:

Signals.jl, while offering the same functionality as Reactive, is different on some key factors

  • Dynamic: Signals are not typed, you can push an integer then float64 and then a string and it blends nicely with Julia‚Äôs Multiple Dispatch

  • Push-Pull: you can either push a value into a Signal and propagate changes along the Signal graph , or you can set a value without any propagation and only pull the necessary changes from any other signal.

  • Syntax: Syntax is somewhat simplified, square brackets to set or query a value, round brackets to pull or push a value (see documentation for more examples)

The last point is, IMO, a minus, but the second one is a plus.

Traditional UI toolkits

QML.jl magically plugs into Qt5. Gtk.jl plugs into GTK.