Web-based GUIs for Julia
Blink.jl is the Julia wrapper around Electron. It can serve HTML content in a local window, and allows for communication between Julia and the web page. In this way, therefore, Blink can be used as a GUI toolkit for building HTML-based applications for the desktop.
To install, do: ```julia julia> # press ] to enter the Pkg REPL mode (v1.3) pkg> add Blink
(v1.3) pkg> # press backspace to exit Pkg REPL mode julia> using Blink ```
unzipon Linux. You'll need to install the appropriate one for your system to be able to install Electron:
apt get install -y unzipor similar should work.
7zthat is normally packaged with binary distributions of Julia (via the BinDeps.jl build dependency).
7zmay be unavailable in case of a source build of Julia on Windows, in which case it can be obtained by running
make win-extrasafter running
julia> using Blink
julia> w = Window() # Open a new window Blink.AtomShell.Window(...)
julia> body!(w, "Hello World") # Set the body content
julia> loadurl(w, "http://julialang.org") # Load a web page
You can also use the JS API to interact with the window. For example:
julia> @js w Math.log(10) 2.302585092994046
If that's not convincing enough, open the console (
Cmd-Alt-Ion OS X) and evaluate:
@js w console.log("hello, web-scale world")
When running on a headless linux instance (such as for CI tests), you must start julia via
xvfb-run julia. More information can be found in the electron docs here. See the Blink.jl .travis.yml file for an example.
Otherwise you will see the following error:
│ LoadError: IOError: connect: connection refused (ECONNREFUSED)
These usually result from Electron failing to start. This is frequently a result of a misconfigured system (e.g., missing required shared libraries or not having a display server running).
To debug, make sure that the Electron process is able to start. The path to the electron executable depends on your environment, but you can obtain it easily: ``` print(Blink.AtomShell._electron)
Running that executable from the command line (outside of Julia) should open an empty Electron window, or it should print out an error message.
For error messages of the form
error while loading shared libraries: libasound.so.2, make sure you've installed that shared library using your system's package manager (e.g.,
apt install libasound2).
If you still can't solve your problems, please feel free to open a new issue.