README.md

# erlang-jupyter
Erlang implementation of the [Jupyter Messaging Specification](http://jupyter-client.readthedocs.io/en/latest/messaging.html),
enabling writing Jupyter kernels in Erlang or other BEAM based languages. Common functionality like history keeping, the execution counter
and output are handled in this library such that one can concentrate on the individual behaviour.

## Usage
To implement a kernel, the behaviour `jup_kernel_backend` has to be implemented. The only required functions are `do_execute` and
`init`.

Running a kernel is then a matter of running `jupyter:start_kernel` with an arbitrary name, the filename of a Jupyter connection file,
the backend module and additional arguments that are passed to the backend's `init` callback.

Currently, the API is in flux, so there is no concrete documentation on the individual functions, yet. It's currently developed in
lockstep with [ierl](https://github.com/filmor/ierl), so the kernel backends there (Erlang, LFE and Elixir) are the de-facto documentation
until the behaviour is done.