# Does any julia-based GUI app (.exe/executable/installer) exists for Windows or Linux?

**URL:** https://discourse.julialang.org/t/does-any-julia-based-gui-app-exe-executable-installer-exists-for-windows-or-linux/53283
**Category:** Community
**Created:** [January 13, 2021, 2:50pm UTC](https://discourse.julialang.org/t/does-any-julia-based-gui-app-exe-executable-installer-exists-for-windows-or-linux/53283 "2021-01-13T14:50:54Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![sylvaticus](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sylvaticus/32/203883_2.png) [@sylvaticus](https://discourse.julialang.org/u/sylvaticus)
#### Post date: [January 13, 2021, 2:50pm UTC](https://discourse.julialang.org/t/does-any-julia-based-gui-app-exe-executable-installer-exists-for-windows-or-linux/53283/1 "2021-01-13T14:50:54Z")

</div>

Out of curiosity, [the topic on crowdfunding for a GUI ML project](https://discourse.julialang.org/t/crowdfunding-julia-based-machine-learning-software/53190/5) make me asking if does any project (not necessarily related to ML) exist that uses PackageCompiler.jl to produce a self-contained julia-base GUI app for Windows or Linux… any example ?

---

<div class="post-metadata">

### Author: ![Gnimuc](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gnimuc/32/2194_2.png) [@Gnimuc](https://discourse.julialang.org/u/Gnimuc)
#### Post date: [January 13, 2021, 3:00pm UTC](https://discourse.julialang.org/t/does-any-julia-based-gui-app-exe-executable-installer-exists-for-windows-or-linux/53283/2 "2021-01-13T15:00:35Z")

</div>

[![](https://global.discourse-cdn.com/julialang/original/3X/2/5/25d92fc8d496bba03c1793e16cb4c78a684e8de5.jpeg "JuliaCon 2020 | Shippable apps and custom sysimages with PackageCompiler.jl | Kristoffer Carlsson") ](https://www.youtube.com/watch?v=d7avhSuK2NA&t=1110)

---

<div class="post-metadata">

### Author: ![sylvaticus](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sylvaticus/32/203883_2.png) [@sylvaticus](https://discourse.julialang.org/u/sylvaticus)
#### Post date: [January 13, 2021, 3:04pm UTC](https://discourse.julialang.org/t/does-any-julia-based-gui-app-exe-executable-installer-exists-for-windows-or-linux/53283/3 "2021-01-13T15:04:42Z")

</div>

ok, but does any actual publicly available GUI app exists ?

---

<div class="post-metadata">

### Author: ![Gnimuc](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gnimuc/32/2194_2.png) [@Gnimuc](https://discourse.julialang.org/u/Gnimuc)
#### Post date: [January 13, 2021, 3:07pm UTC](https://discourse.julialang.org/t/does-any-julia-based-gui-app-exe-executable-installer-exists-for-windows-or-linux/53283/4 "2021-01-13T15:07:39Z")

</div>

what do you mean by “publicly available”? download links for App binaries?

---

<div class="post-metadata">

### Author: ![sylvaticus](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sylvaticus/32/203883_2.png) [@sylvaticus](https://discourse.julialang.org/u/sylvaticus)
#### Post date: [January 13, 2021, 3:16pm UTC](https://discourse.julialang.org/t/does-any-julia-based-gui-app-exe-executable-installer-exists-for-windows-or-linux/53283/5 "2021-01-13T15:16:07Z")

</div>

Yes, if there is any example I can just download & run… And even better if there exists any “real app”, in the sense that does something, not just for demonstrative purposes…

---

<div class="post-metadata">

### Author: ![Gnimuc](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gnimuc/32/2194_2.png) [@Gnimuc](https://discourse.julialang.org/u/Gnimuc)
#### Post date: [January 13, 2021, 3:44pm UTC](https://discourse.julialang.org/t/does-any-julia-based-gui-app-exe-executable-installer-exists-for-windows-or-linux/53283/6 "2021-01-13T15:44:15Z")

</div>

I did upload one, but only for macOS.

[https://github.com/Gnimuc/Redux.jl/releases](https://github.com/Gnimuc/Redux.jl/releases)

---

<div class="post-metadata">

### Author: ![barche](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/barche/32/79_2.png) [@barche](https://discourse.julialang.org/u/barche)
#### Post date: [January 13, 2021, 4:06pm UTC](https://discourse.julialang.org/t/does-any-julia-based-gui-app-exe-executable-installer-exists-for-windows-or-linux/53283/7 "2021-01-13T16:06:49Z")

</div>

I made a small example using QML.jl. The kids love it 🙃

> [@TimesTables.jl, a fun (cold\_sweat) app using QML.jl and PackageCompiler.jl](https://discourse.julialang.org/t/timestables-jl-a-fun-app-using-qml-jl-and-packagecompiler-jl/46799):
>
> Hi all, Following the excellent demo of PackageCompiler at JuliaCon, I decided to give it a try for a GUI application using QML. You can find the result at [https://github.com/barche/TimesTables.jl](https://github.com/barche/TimesTables.jl) The application itself is quite simple, intended to force my kids to do elementary school math exercises. What is more interesting is how it works, some highlights: It is based on the “new” QML.jl workflow, i.e. everything is linked together using Observables. That should make it easy to replace th…

---

<div class="post-metadata">

### Author: ![sylvaticus](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sylvaticus/32/203883_2.png) [@sylvaticus](https://discourse.julialang.org/u/sylvaticus)
#### Post date: [January 13, 2021, 8:05pm UTC](https://discourse.julialang.org/t/does-any-julia-based-gui-app-exe-executable-installer-exists-for-windows-or-linux/53283/8 "2021-01-13T20:05:33Z")

</div>

nice… did you release it also as a self-contained binary executable?

---

<div class="post-metadata">

### Author: ![barche](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/barche/32/79_2.png) [@barche](https://discourse.julialang.org/u/barche)
#### Post date: [January 13, 2021, 10:34pm UTC](https://discourse.julialang.org/t/does-any-julia-based-gui-app-exe-executable-installer-exists-for-windows-or-linux/53283/9 "2021-01-13T22:34:41Z")

</div>

Yes, it’s in the releases:

[https://github.com/barche/TimesTables.jl/releases/tag/v0.1.1](https://github.com/barche/TimesTables.jl/releases/tag/v0.1.1)

---

<div class="post-metadata">

### Author: ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)
#### Post date: [January 13, 2021, 11:10pm UTC](https://discourse.julialang.org/t/does-any-julia-based-gui-app-exe-executable-installer-exists-for-windows-or-linux/53283/10 "2021-01-13T23:10:48Z")

</div>

At least in the Linux tarball, symlinks aren’t symlinks but text files with the path of the target as content

---

<div class="post-metadata">

### Author: ![liuyxpp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/liuyxpp/32/9870_2.png) [@liuyxpp](https://discourse.julialang.org/u/liuyxpp)
#### Post date: [January 14, 2021, 1:26am UTC](https://discourse.julialang.org/t/does-any-julia-based-gui-app-exe-executable-installer-exists-for-windows-or-linux/53283/11 "2021-01-14T01:26:11Z")

</div>

I have tried your MacOS app. Two concerns:

1. The size of the binary is just too large.
2. It is too slow to start it for the first time.

If it is normal for GUI app written in Julia, I’d say Julia still has a long way to go in GUI app development: the user experience is so painful.

---

<div class="post-metadata">

### Author: ![sylvaticus](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sylvaticus/32/203883_2.png) [@sylvaticus](https://discourse.julialang.org/u/sylvaticus)
#### Post date: [January 14, 2021, 8:37am UTC](https://discourse.julialang.org/t/does-any-julia-based-gui-app-exe-executable-installer-exists-for-windows-or-linux/53283/12 "2021-01-14T08:37:46Z")

</div>

yep, for example `TimesTablesApp/lib/julia/libjulia.so.1` is a text file whose content is `libjulia.so.1.5` instead of being a symlink to it…

(obviously then the executable doesn’t work…)

---

<div class="post-metadata">

### Author: ![barche](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/barche/32/79_2.png) [@barche](https://discourse.julialang.org/u/barche)
#### Post date: [January 14, 2021, 10:24am UTC](https://discourse.julialang.org/t/does-any-julia-based-gui-app-exe-executable-installer-exists-for-windows-or-linux/53283/13 "2021-01-14T10:24:11Z")

</div>

> [@sylvaticus](#):
>
> yep, for example `TimesTablesApp/lib/julia/libjulia.so.1` is a text file whose content is `libjulia.so.1.5` instead of being a symlink to it…

Yes, I didn’t actually test the linux binary myself. I’m guessing it’s because I use 7z to create the archive, this probably needs a platform-dependent if clause around it:

> <https://github.com/barche/TimesTables.jl/blob/f2795816725123b436139f266e19ce68eb1d3823/.github/workflows/build-app.yml#L34>

---

<div class="post-metadata">

### Author: ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)
#### Post date: [January 14, 2021, 10:26am UTC](https://discourse.julialang.org/t/does-any-julia-based-gui-app-exe-executable-installer-exists-for-windows-or-linux/53283/14 "2021-01-14T10:26:13Z")

</div>

> [@liuyxpp](#):
>
> It is too slow to start it for the first time.

Note that the very first time you start something in mac, the OS does a bunch of extra checks which makes it a lot slower. The second time is faster. (It might still be slow though, depends on the application).

---

<div class="post-metadata">

### Author: ![barche](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/barche/32/79_2.png) [@barche](https://discourse.julialang.org/u/barche)
#### Post date: [January 14, 2021, 10:36am UTC](https://discourse.julialang.org/t/does-any-julia-based-gui-app-exe-executable-installer-exists-for-windows-or-linux/53283/15 "2021-01-14T10:36:07Z")

</div>

> [@liuyxpp](#):
>
> I have tried your MacOS app. Two concerns:
> 
> 1. The size of the binary is just too large.
> 2. It is too slow to start it for the first time.

I think the PackageCompiler developers are aware of the size issue, but since we need to ship the Julia runtime it’s never going to be small. Another issue specific to this case is that our Qt package is monolithic, so we’re shipping a lot more Qt libs than needed here. Anyway, it seems like large binaries are a trend, for example the [element.io](http://element.io) chat app is also a 100 MB download, and that is just a wrapper around a website… (no excuse not to do our best to limit sizes here, of course).

Regarding the speed: I’m a bit disappointed myself, I assume this will get better and it may also be in part due to CxxWrap, which is not that precompilation friendly, apparently.

A third problem on Mac is that it doesn’t actually start unless you quench the security features, otherwise you have to manually allow every included library to open. Similar warnings appear on Windows.

---

<div class="post-metadata">

### Author: ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)
#### Post date: [January 14, 2021, 12:18pm UTC](https://discourse.julialang.org/t/does-any-julia-based-gui-app-exe-executable-installer-exists-for-windows-or-linux/53283/16 "2021-01-14T12:18:57Z")

</div>

Motivated by this thread I have created a standalone app (windows only) of a toy project [https://github.com/oheil/PlayGround.jl](https://github.com/oheil/PlayGround.jl) which uses [CImGUI](https://github.com/Gnimuc/CImGui.jl).

The build steps (very few) can be seen in the [Readme.md](https://github.com/oheil/PlayGround.jl)

A ZIP archive for windows can be downloaded here: [https://github.com/oheil/PlayGroundApp/raw/main/PlayGroundApp.zip](https://github.com/oheil/PlayGroundApp/raw/main/PlayGroundApp.zip)

Unpack and double click on PlayGroundApp\bin\PlayGround.exe

Pro’s:

- PackageCompiler works out of the box
- the standalone executable doesn’t show any issues

Con’s (confirming already mentioned concerns from previous posters):

- Package (the ZIP archive to download) is too large
- Console window is shown (should be suppressed)
- Startup time is not so short as expected (a splash screen would be nice). It is faster to create a sysimage, than run Julia and the startup command manually.

All in all I am very pleased with the outcome. Until now I have only read about the possibility to create something standalone and I knew I would want it sometimes, but never tried it. The Con’s are not so nice and should be addressed somehow, but, for me, they aren’t a show stopper right now.

---

<div class="post-metadata">

### Author: ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)
#### Post date: [January 14, 2021, 12:41pm UTC](https://discourse.julialang.org/t/does-any-julia-based-gui-app-exe-executable-installer-exists-for-windows-or-linux/53283/17 "2021-01-14T12:41:32Z")

</div>

> [@oheil](#):
>
> A ZIP archive for windows can be downloaded here: [https://github.com/oheil/PlayGround.jl/raw/master/PlayGroundApp/PlayGroundApp.zip](https://github.com/oheil/PlayGround.jl/raw/master/PlayGroundApp/PlayGroundApp.zip)

I wouldn’t add a binary blob, especially such a large one, to the Git repository. It bloats the history in a very bad way

---

<div class="post-metadata">

### Author: ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)
#### Post date: [January 14, 2021, 12:43pm UTC](https://discourse.julialang.org/t/does-any-julia-based-gui-app-exe-executable-installer-exists-for-windows-or-linux/53283/18 "2021-01-14T12:43:26Z")

</div>

Too late 🙂  
It’s only a play ground, nothing serious. If the large file annoys me, I will remove it again (and the history).

---

<div class="post-metadata">

### Author: ![barche](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/barche/32/79_2.png) [@barche](https://discourse.julialang.org/u/barche)
#### Post date: [January 14, 2021, 1:46pm UTC](https://discourse.julialang.org/t/does-any-julia-based-gui-app-exe-executable-installer-exists-for-windows-or-linux/53283/19 "2021-01-14T13:46:37Z")

</div>

Note that you can also trigger github to build the binary for you, and automatically attach it to a release, see the workflow files in TimesTables.jl.

---

<div class="post-metadata">

### Author: ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)
#### Post date: [January 14, 2021, 1:53pm UTC](https://discourse.julialang.org/t/does-any-julia-based-gui-app-exe-executable-installer-exists-for-windows-or-linux/53283/20 "2021-01-14T13:53:30Z")

</div>

> We wanted to let you know that you’ve used 80% of your data plan for Git LFS on your personal account oheil. No immediate action is necessary, but you might want to consider purchasing additional data packs to cover your bandwidth and storage usage:

Well, it starts to annoy…  
😆

[Next page](https://discourse.julialang.org/t/does-any-julia-based-gui-app-exe-executable-installer-exists-for-windows-or-linux/53283.md?page=2)
