Jupyter kernels

Tom Gillespie edited this page Aug 12, 2018 · 60 revisions

Jupyter kernels

Kernel Zero is IPython, which you can get through ipykernel, and is still a dependency of jupyter. The IPython kernel can be thought of as a reference implementation, as CPython is for Python.

Here is a list of available kernels. If you are writing your own kernel, feel free to add it to the table!

Name Jupyter/IPython Version Language(s) Version 3rd party dependencies Example Notebooks Notes
Dyalog Jupyter Kernel APL (Dyalog) Dyalog >= 15.0 Notebooks Can also be run on TryAPL's Learn tab
Coarray-Fortran Jupyter 4.0 Fortran 2008/2015 GFortran >= 7.1, OpenCoarrays, MPICH >= 3.2 Demo, Binder demo Docker image
Ansible Jupyter Kernel Jupyter 5.6.0.dev0 Ansible 2.x Hello World
sparkmagic Jupyter >=4.0 Pyspark (Python 2 & 3), Spark (Scala), SparkR (R) Livy Notebooks, Docker Images This kernels are implemented via the magics machinery of the ipython kernel to use Spark via Livy
sas_kernel Jupyter 4.0 python >= 3.3 SAS 9.4 or higher
IPyKernel Jupyter 4.0 python 2.7, >= 3.3 pyzmq
IJulia julia >= 0.3
IHaskell ghc >= 7.6 Demo
IRuby ruby >= 2.1
IJavascript nodejs >= 0.10
jpCoffeescript coffeescript >= 1.7
jp-LiveScript livescript >= 1.5 Based on IJavascript and jpCoffeescript
ICSharp Jupyter 4.0 C# 4.0+ scriptcs
IRKernel IPython 3.0 R 3.2 rzmq
SageMath Jupyter 4 Any many
pari_jupyter Jupyter 4 PARI/GP >= 2.9
IFSharp IPython 2.0 F# Features
lgo Jupyter >= 4, JupyterLab Go >= 1.8 ZeroMQ (4.x) Example Docker image
gopherlab Jupyter 4.1, JupyterLab Go >= 1.6 ZeroMQ (4.x) examples Deprecated, use gophernotes
Gophernotes Jupyter 4, JupyterLab, nteract Go >= 1.9 ZeroMQ 4.x.x examples docker image
IGo Go >= 1.4
IScala Scala
Jupyter-scala IPython>=3.0 Scala>=2.10 example
IErlang IPython 2.3 Erlang rebar
ITorch IPython >= 2.2 and <= 5.x Torch 7 (LuaJIT)
IElixir Jupyter >= 4.0 Elixir >= 1.5 Erlang OTP >= 19.3, Rebar example, Boyle package manager examples, Boyle examples with usage of Matrex library IElixir Docker image, IElixir Notebook in Docker
ierl Jupyter >= 4.0 Erlang 19 or 20, Elixir 1.4 or 1.5, LFE 1.2 Erlang, (optional) Elixir
IAldor IPython >= 1 Aldor
IOCaml IPython >= 1.1 OCaml >= 4.01 opam
OCaml-Jupyter Jupyter >= 4.0 OCaml >= 4.02 opam Example Docker image
IForth IPython >= 3 Forth
peforth IPython 6/Jupyter 5 Forth Example python debugger in FORTH syntax
IPerl Perl 5
Perl6 Jupyter >= 4 Perl 6.c zeromq 4
IPerl6 Perl 6
Jupyter-Perl6 Jupyter Perl 6.C Rakudo Perl 6
IPHP IPython >= 2 PHP >= 5.4 composer DEPRECATED, use Jupyter-PHP
Jupyter-PHP Jupyter 4.0 PHP >= 7.0.0 composer, php-zmq
IOctave Jupyter Octave Example MetaKernel
IScilab Jupyter Scilab Example MetaKernel
MATLAB Kernel Jupyter Matlab pymatbridge Example MetaKernel
Bash IPython >= 3 bash Wrapper
Pharo Smalltalk IPython >= 3 Mac Os X Paro 64 bits native kernel, zeromq
PowerShell IPython >= 3 Windows Wrapper, Based on Bash Kernel
CloJupyter Jupyter Clojure >= 1.7
CLJ-Jupyter Jupyter Clojure Abandoned as of 2017-02-12
jupyter-kernel-jsr223 Jupyter>=4.0 Clojure 1.8 clojure-jrs223, Java>=7 Java based JSR223 compliant
Hy Kernel Jupyter Hy Tutorial treats Hy as Python pre-processor
Calysto Hy Jupyter Hy Tutorial based on MetaKernel (magics, shell, parallel, etc.)
Redis Kernel IPython >= 3 redis Wrapper
jove io.js
jp-babel Jupyter Babel
ICalico IPython >= 2 multiple Index
IMathics Mathics
IWolfram Wolfram Mathematica Wolfram Mathematica(R), Metakernel MetaKernel
Lua Kernel Lua
IPurescript Purescript
IPyLua Lua Fork of Lua Kernel
Calysto Scheme Scheme Reference Guide MetaKernel
Calysto Processing Processing.js >= 2 MetaKernel
idl_kernel IDL IDL seem to have a built-in kernel starting with version 8.5
Mochi Kernel Mochi
Lua (used in Splash) Lua
Apache Toree (formerly Spark Kernel) Jupyter Scala, Python, R Spark >= 1.5 Example
Skulpt Python Kernel Skulpt Python Examples MetaKernel
MetaKernel Bash bash MetaKernel
MetaKernel Python python MetaKernel
IVisual VPython Ball-in-Box
IBrainfuck Brainfuck Demo Wrapper
KDB+/Q Kernel (IKdbQ) IPython >= 3.1 Q qzmq, qcrypt
KDB+/Q Kernel (KdbQ Kernel) Jupyter Q
ICryptol Cryptol CVC4
cling Jupyter 4 C++ Example
xeus-cling Jupyter >= 5.1 C++ Example Supports Jupyter widgets
Xonsh Xonsh Example MetaKernel
Prolog Prolog MetaKernel
cl-jupyter Jupyter Common Lisp Quicklisp About
Maxima-Jupyter Jupyter Maxima Quicklisp
Calysto LC3 Assembly Language for the Little Computer 3
Yacas YACAS
IJython Jython 2.7
ROOT Jupyter C++/python ROOT >= 6.05
Gnuplot Kernel Gnuplot Example MetaKernel
Tcl Jupyter Tcl 8.5 Based on Bash Kernel
J Jupyter J 805 Examples
Jython Jupyter>=4.0 Jython>=2.7.0 Java>=7 Java based JSR223 compliant
C Jupyter C gcc
TaQL Jupyter TaQL python-casacore TaQL tutorial
Coconut Jupyter Coconut
SPARQL Jupyter 4 Python 2.7 or >=3.4 rdflib, SPARQLWrapper Examples Optional GraphViz dependency
AIML chatbot Jupyter 4 Python 2.7 pyAIML Examples
IArm Jupyter 4 ARMv6 THUMB Examples Based off of the ARM Cortex M0+ CPU
SoS Jupyter 4 Python >=3.4 Examples Workflow system, Multi-Kernel support
jupyter-nodejs Jupyter, iPython 3.x NodeJS, Babel, Clojurescript Examples
Pike IPython >= 3 Pike >= 7.8 Wrapper, Based on Bash Kernel
ITypeScript Typescript >= 2.0 Node.js >= 0.10.0
imatlab ipykernel >= 4.1 MATLAB >= 2016b
jupyter-kotlin Jupyter Kotlin 1.1-M04 EAP Java >= 8
jupyter_kernel_singular Jupyter Singular 4.1.0 Demo Optional PySingular for better performance, surf for images, details
spylon-kernel ipykernel >=4.5 python >= 3.5, scala >= 2.11 Apache Spark >=2.0 Example MetaKernel
mit-scheme-kernel Jupyter 4.0 MIT Scheme 9.2
elm-kernel Jupyter Examples
SciJava Jupyter Kernel Jupyter 4.3.0 Java + 9 scripting languages Java Examples
Isbt Jupyter 4.3.0 sbt >= 1.0.0 sbt example
BeakerX Groovy, Java, Scala, Clojure, Kotlin, SQL example docker image
MicroPython Jupyter ESP8266/ESP32 USB or Webrepl developer notebooks relies on the micro-controller's paste-mode
IJava Jupyter Java 9 Java JDK >= 9 Binder online demo Based on the new JShell tool
Guile Jupyter 5.2 Guile 2.0.12 guile-json, openssl
circuitpython_kernel Jupyter CircuitPython USB Examples
stata_kernel Jupyter >=5 Stata Stata >=14 Communicates natively with Stata
iPyStata Jupyter Stata Stata Example Notebook Implemented using magics machinery of ipython.
IRacket IPython >= 3 Racket >= 6.10 Racket, ZeroMQ Example

Many kernels are available for installation on PyPI.

Repository

Several of these kernels are available in a PPA for Ubuntu 15.10 (wily)/16.04 (xenial). Add it with:

sudo add-apt-repository ppa:chronitis/jupyter
sudo apt-get update
sudo apt-get install <kernelname>

The following kernel packages are available (along with their dependencies):

  • ihaskell
  • ijulia
  • ijavascript
  • irkernel
  • iruby
  • gophernotes (xenial only)

(The repository doesn't contain ipython/jupyter - you'll still need to install it with pip)

Additional Related Projects

  • Jove - notebook interface in Java; provides Spark and Scala kernels
  • Brython Magics - A magic trick to allow you to use Brython code (client-side) in other notebooks
  • pixiedust_node - PixieDust extension that enable a Jupyter Notebook user to invoke Node.js commands.

Creating new Jupyter kernels

Making kernels for Jupyter in the documentation.

Simple example kernel

IHaskell creator blog post

Testing kernels against message specification (work in progress)

Tool to test a kernel against specification (work in progress)

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.