Code Monkey home page Code Monkey logo

blink.jl's Introduction

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> Pkg.add("Blink")
# ... Blink builds and downloads Electron ...
julia> using Blink
julia> Blink.AtomShell.install()

Dependencies

  • 7z on Windows and unzip on Linux.
    • You'll need to install the appropriate one for your system to be able to install Electron (for Linux, apt get install -y unzip or similar should work).
    • 7z is also packaged with Julia, so if you have your Julia installation in your PATH, we can use that version of 7z as well.

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
Blink Window showing the JuliaLang website

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

  • On Windows, the spawned process dumps its output into Julia's STDOUT, which is kind of annoying.

  • 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)
    

blink.jl's People

Contributors

andreasnoack avatar cc7768 avatar davidanthoff avatar ericdarve avatar hustf avatar logankilpatrick avatar lwabeke avatar malmaud avatar matthieugomez avatar mbauman avatar mikeinnes avatar nhdaly avatar pfitzseb avatar rafaqz avatar randyzwitch avatar ranjanan avatar rdeits avatar rohitvarkey avatar sglyon avatar shashi avatar tkelman avatar tkoolen avatar twavv avatar varanas avatar vdayanand avatar waldyrious avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.