Home

Awesome

Blink.jl

Build Status

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> # press ] to enter the Pkg REPL mode
(v1.3) pkg> add Blink
# ... Blink builds and downloads Electron ...
(v1.3) pkg> # press backspace to exit Pkg REPL mode
julia> using Blink

Basic usage:

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
<div align="left"> <img src="https://raw.githubusercontent.com/JuliaGizmos/Blink.jl/master/docs/src/ReadMeTutorialImage.png" alt="Blink Window showing the JuliaLang website" width="480"> </div>

For options see the functions defined in window.jl, which closely follow electron's API.

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-I on OS X) and evaluate:

@js w console.log("hello, web-scale world")

Issues & Caveats

Troubleshooting

Troubleshooting connection refused messages

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)
# /Users/travis/.julia/packages/Blink/mwJC9/deps/Julia.app/Contents/MacOS/Julia

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.