Jupyter's kernel for Elixir
Hex: https://hex.pm/packages/ielixir.
Please see generated documentation for implementation details: http://hexdocs.pm/ielixir/.
##Getting Started
$ 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-console
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 compile
Create and edit kernel.json
file
$ mkdir ~/.ipython/kernels/ielixir
$ vim ~/.ipython/kernels/ielixir/kernel.json
Put 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.sh
Run Jupyter console with following line:
(jupyter-env) $ jupyter console --kernel ielixir
Run Jupyter Notebook with following line:
(jupyter-env) $ jupyter notebook resources/example.ipynb
Go to http://localhost:8888/ site (by default) in your browser and pick IElixir kernel:
Evaluate some commands in your new notebook:
Run following command and see doc
directory for generated documentation in HTML:
$ mix docs
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
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.