Are we gui yet?


I am currently looking for package options to create applications for internal clients.
What I would really need is :

  • easy to use (documented package would be nice)
  • widgets (file pickers, sliders…)
  • Plots.jl (scatter, plots, histogram mostly)
  • Package still being maintained

Here is the list of options I have tried so far and why these :

  • Pluto & PlutoUI => very nice but clients can (and will) find hidden code and I need more configurable layouts (especially widgets and plots)
  • GTK.jl and glade (gui builder) => easy, lightweight, but GR.jl resists me (figsize, colors etc…)
  • Blink.jl, this package would tick all the boxes but it does not seems to be maintained anymore?
  • Genie.jl, tried it 2-3 years ago (and a lot of development has been done since) but is probably overkill for what I need. That, and my skills in web development are… negligible.

Don’t get me wrong, these are all great packages but I can’t seem the find the one that fits all (if it even exists).

Would you know of a package/framework that would fit the bill?

Thanks in advance!


I suggest Makie.jl

  • It has a good documentation: Home
  • It has widgets (see e.g. SliderGrid I’m unsure about file picker though.)
  • It supports plots :wink:
  • Package is well maintained.

Combining Plots.jl and/or GR.jl with QML.jl should provide all of that. Unfortunately QML.jl is not available on all platforms for Julia 1.8.


I’ll give it a shot over the next two days and see if I can get something usable.

Another option is to use e.g. Electron for the frontend (GUI in html + javascript), and Julia on the backend. There are many interactive javascript plotting libraries, like plotly.

There’s a no-code option now, from Genie. Announcing Genie Builder, a no-code plugin to quickly build web GUIs & dashboards


I think Electron is overkill most of the times it is used, just use a local Web server and then the user can open the page in their favorite browser.

Here is a GUI example using CImGui and ImPlot:

Then you need to compile an app from your project to ship it (didn’t check it for a while).


I came across this one too but was turned off by the scarcer commits (using the contributors as metrics)…

For a light weight app, i did consider using HTTP.jl as base. Is that what you are referring to?
If so, would you have a MWE to share?
I am not a web developer by any means but I would be willing to improve.

I would have to look further into that !! Didn’t consider that option. Cheers!

I think you misunderstand the sate of the project and what it actually is.

CImGui.jl and ImPlot.jl are just convenience wrappers around LibCImGui.jl autognerated wrapper around cimgui and cimplot autogenerated c-library wrappers around imgui and implot cpp libraries which are actively developed and backed by many big software and gaming companies, if It says something to you… Personally I think the core project will outlive many new fancy web-frameworks.

So yes, there are no active developers for thin julia wrappers, just because there are no big demand to re-generate them for newer imgui/implot versions. :slight_smile:


Also, if you want to compare functionality and ease of use, you can try to re-create the exactly same example I posted above - in other plotting libraries. And we’ll see how many efforts and lines of code it will take to create the same iteractive plots and gui controls for other options. :wink:

I think there IS a reason its only one working example for interactive gui+plot in this thread (for now).

For full functionality see interactive tutorials for cpp versions here (most of it available in Julia):

This makes sense, cheers!

Come to think of it, I may have seen imgui when looking for a rust gui…
Thanks a lot for pointing this out to me, I won’t be as quick at discarding package thanks to you.
Definitely something I will be trying out now!

Challenge acceped! :grinning:

See the second example here: GtkServer.jl

Of course GtkServer is not a serious challenger to ImGui – however, I still think it may be worth a look for putting together a quick GUI demo very easily.

Seriously now, a great alternative package for interactive plots is InspectDR.


The QML.jl problem in Julia 1.8 can be easily fixed by installing CxxWrap from the main branch (] add CxxWrap#master). This will also run all QML examples with GR.jl und Plots.jl.


Makie seems to have been nicely accepted within the team!
Have you ever tried to make it deployable (either as a standalone through packagecompiler or through a webserver)?
On first attempt Packagecompiler does create a sysimage but fails to create the app.
Any experience with this??

@MrHenning ?