IElixir
Jupyter's kernel for Elixir
Hex: https://hex.pm/packages/ielixir.
Please see generated documentation for implementation details: http://hexdocs.pm/ielixir/.
Getting Started
Configure Jupyter
$ git clone https://github.com/jupyter/notebook.git
$ cd notebook
$ mkvirtualenv jupyter-env
$ workon jupyter-env
(jupyter-env) $ pip install --pre -e .
(jupyter-env) $ pip install jupyter-consoleConfigure IElixir
Clone IElixir repository and prepare the project
$ git clone https://github.com/pprzetacznik/IElixir.git
$ cd IElixir
$ mix deps.get
$ mix test
$ MIX_ENV=prod mix compilePrepare kernel.json file
Create and edit kernel.json file
$ mkdir ~/.ipython/kernels/ielixir
$ vim ~/.ipython/kernels/ielixir/kernel.jsonPut into the file following content:
{
"argv": ["{PATH_TO_YOUR_IELIXIR_PROJECT}/start_script.sh", "{connection_file}"],
"display_name": "ielixir",
"language": "Elixir"
}or simply run installation script to create this file:
$ ./install_script.shUse IElixir
Run Jupyter console with following line:
(jupyter-env) $ jupyter console --kernel ielixirRun Jupyter Notebook with following line:
(jupyter-env) $ jupyter notebook resources/example.ipynbGo to http://localhost:8888/ site (by default) in your browser and pick IElixir kernel:
Evaluate some commands in your new notebook:
Generate documentation
Run following command and see doc directory for generated documentation in HTML:
$ mix docsReferences
I was inspired by following codes and articles:
- https://github.com/pminten/ielixir
- https://github.com/robbielynch/ierlang
- https://github.com/dsblank/simple_kernel
- http://andrew.gibiansky.com/blog/ipython/ipython-kernels/
- https://ipython.org/ipython-doc/dev/development/messaging.html
License
Copyright 2015 Piotr Przetacznik
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

