Skip to content
goyalyashpal edited this page Jan 26, 2024 · 189 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 Jupyter kernels. If you are writing your own kernel, feel free to add it to the table!

Language(s) Version Name Jupyter/IPython Version 3rd party dependencies Example Notebooks Notes
LFortran Binder demo Main repository at GitLab
JupyterQ (KX Official Kernel) Jupyter kdb+ ≥ v3.5 64-bit, Python ≥ 3.6, embedPy Notebook Examples
Calysto LC3 Assembly Language for the Little Computer 3
elm-kernel Jupyter Examples
BeakerX Groovy, Java, Scala, Clojure, Kotlin, SQL example docker image
multiple ICalico IPython >= 2 Index
2.6.0 Agda kernel
APL (Dyalog) Dyalog Jupyter Kernel Dyalog >= 15.0 Notebooks Can also be run on TryAPL's Learn tab
ARMv6 THUMB IArm Jupyter 4 Examples Based off of the ARM Cortex M0+ CPU
Aldor IAldor IPython >= 1
Ansible 2.x Ansible Jupyter Kernel Jupyter 5.6.0.dev0 Hello World
Any Juka Jupyter 4 Juka Example Wrapper. Requires Juka executable in PATH
Any SageMath Jupyter 4 many
Babel jp-babel Jupyter
Bash SSH Kernel Jupyter paramiko, metakernel Examples A Jupyter kernel specialized in executing commands remotely with paramiko SSH client.
Bash Bash IPython >= 3 Wrapper
Bash Calysto Bash MetaKernel
Brainfuck IBrainfuck Example Wrapper
C C Jupyter gcc
C jupyterC Jupyter gcc>=3.0 Supports C89 to C17, Built for teaching C
C/C++ c-kernel Jupyter Automatic compilation, customisable kernel, interactive input and multi-file programs. Intended for easy teaching/learning of C/C++
C/C++ jupyter-cpp-kernel Jupyter g++>=13.2 Document C++ kernel for Jupyter. Easily adopt and deployment for testing environment.
C# 4.0+ ICSharp Jupyter 4.0 scriptcs
C#, F#, Powershell .Net Interactive Jupyter 4 .Net Core SDK Binder Examples
C++ cling Jupyter 4 Example
C++ xeus-cling Jupyter >= 5.1 Example Supports Jupyter widgets
C++/python ROOT Jupyter ROOT >= 6.05
bc, C, C++, ngspice, Octave, PlantUML GPP Jupyter gcc, clang Example MetaKernel
Cadabra2 Cadabra2 Jupyter 5 Example notebook
Cassandra CQL cqljupyter Jupyter CQL Examples
Chapel jupyter_kernel_chapel Jupyter
CircuitPython circuitpython_kernel Jupyter USB Examples
ClickHouse SQL xeus-clickhouse xeus Example
Clingo iclingo IPython 8 clingo Basic Examples
Clojure CLJ-Jupyter Jupyter Abandoned as of 2017-02-12
Clojure 1.8 jupyter-kernel-jsr223 Jupyter>=4.0 clojure-jrs223, Java>=7 Java based JSR223 compliant
Clojure >= 1.7 CloJupyter Jupyter
Coconut Coconut Jupyter
Coffeescript >= 1.7 jpCoffeescript
Common Lisp common-lisp-jupyter Jupyter Quicklisp About
Coq coq_jupyter Jupyter 5 coq Binder online demo
Cryptol ICryptol CVC4
Crystal ICrystal Jupyter IRC
Crystal crystal_kernel Jupyter Python wrapper kernel Crystal interpreter
Dart jupyter-dart-kernel Jupyter dart
Deno jupyter-deno-kernel Jupyter Deno >= 1.37.0
Dg (Doge) idg Jupyter Example Notebooks
Dockerfile dockerfile-kernel JupyterLab Docker User should be in the docker group.
Dot/graphviz jupyter-dot-kernel Jupyter >= 4.0 graphviz version 2.40.1
ESP8266/ESP32 MicroPython Jupyter USB or Webrepl developer notebooks relies on the micro-controller's paste-mode
Elixir >= 1.5 IElixir Jupyter >= 4.0 Erlang OTP >= 19.3, Rebar example, Boyle package manager examples, Boyle examples with usage of Matrex library IElixir Docker image, IElixir Notebook in Docker
Emacs Lisp ielisp Jupyter emacs-zmq
Erlang IErlang IPython 2.3 rebar
Erlang >= 19, Elixir >= 1.4, LFE 1.2 ierl Jupyter >= 4.0 Erlang, (optional) Elixir
F# IFSharp Jupyter 4 Features
Forth IForth IPython >= 3
Forth peforth IPython 6/Jupyter 5 Example python debugger in FORTH syntax
Fortran 2008/2015 Coarray-Fortran Jupyter 4.0 GFortran >= 7.1, OpenCoarrays, MPICH >= 3.2 Demo, Binder demo Docker image
GAP >= 4.10 GAP Kernel Jupyter Binder demo A Jupyter kernel for the computational algebra system GAP.
Galileo >= 0.1.3 iGalileo Jupyter >= 4, JupyterLab Docker image
Ghc >= 7.6 IHaskell Demo
Gnuplot Gnuplot Kernel Example MetaKernel
Go >= 1.21 GoNB Jupyter >= 5 Tutorial Binder Live Demo
Go >= 1.4 IGo Unmaintained, use gophernotes
Go >= 1.6 gopherlab Jupyter 4.1, JupyterLab ZeroMQ (4.x) examples Deprecated, use gophernotes
Go >= 1.8 lgo Jupyter >= 4, JupyterLab ZeroMQ (4.x) Example Docker image
Go >= 1.9 Gophernotes Jupyter 4, JupyterLab, nteract ZeroMQ 4.x.x examples docker image
GrADS >= 2.0 GrADS kernel
Guile 2.0.12 Guile Jupyter 5.2 guile-json, openssl
HiveQL HiveQL Kernel Jupyter >= 5 pyhive Display HiveQL queries in HTML tables
Hy Hy Kernel Jupyter Tutorial treats Hy as Python pre-processor
Hy Calysto Hy Jupyter Tutorial based on MetaKernel (magics, shell, parallel, etc.)
IDL idl_kernel IDL seem to have a built-in kernel starting with version 8.5
Intel Assembly Language Emu86 Kernel Jupyter Introduction to Intel Assembly Language Tutorial
Io.js jove
J 805-807 (J901beta) J Jupyter Notebook/Lab Examples
Java & Rascal Bacatá Jupyter ZeroMQ & Rascal Example A Jupyter kernel generator for domain-specific languages.
Java 11+, Groovy, Javascript, Kotlin, Scala, Apache Spark, and more Ganymede Jupyter >= 4.0 JShell, Apache Maven Resolver Examples
Java 9 IJava Jupyter Java JDK >= 9 Binder online demo Based on the new JShell tool
JavaScript, Ruby, Python, R, and more IPolyglot Jupyter GraalVM Example Polyglot Notebook Dockerfile
Julia >= 0.3 IJulia
Jython 2.7 IJython
Jython>=2.7.0 Jython Jupyter>=4.0 Java>=7 Java based JSR223 compliant
Kotlin kotlin-jupyter Jupyter Java >= 8 Samples
Livescript >= 1.5 jp-LiveScript Based on IJavascript and jpCoffeescript
Lua Lua Kernel
Lua IPyLua Fork of Lua Kernel
Lua ILua
Lua Lua (used in Splash)
Mac Os X Pharo Smalltalk IPython >= 3 Binder demo Paro 64 bits native kernel, zeromq
Mathics IMathics
MATLAB >= 2016b imatlab ipykernel >= 4.1
Matlab MATLAB Kernel Jupyter pymatbridge Example MetaKernel
Matlab MKernel Jupyter ipykernel, matlabengine, wurlitzer Example Optimized for both Jupyter and Quarto
Maxima Maxima-Jupyter Jupyter Quicklisp
MIPS32 Assembly Language MIPS Jupyter Kernel Jupyter Python3, SPIM Example Driven by Python3 and Pexpect
MIT Scheme 9.2 mit-scheme-kernel Jupyter 4.0
Mochi Mochi Kernel
MongoDB iMongo
Natural languages iTTS speech-dispatcher Example Currently cannot output sound into files or blobs because of limitations of speech-dispatcher
NodeJS, Babel, Clojurescript jupyter-nodejs Jupyter, iPython 3.x Examples
NodeJs 12 nelu-kernelu Jupyter NodeJs 12.3+ Examples An advanced NodeJs Jupyter kernel supporting comms and displays among other things.
NodeJs >= 0.10 IJavascript
OCaml >= 4.01 IOCaml IPython >= 1.1 opam
OCaml >= 4.02 OCaml-Jupyter Jupyter >= 4.0 opam Example Docker image
Octave IOctave Jupyter Example MetaKernel
PARI/GP >= 2.9 pari_jupyter Jupyter 4
PHP >= 5.4 IPHP IPython >= 2 composer DEPRECATED, use Jupyter-PHP
PHP >= 7.0.0 Jupyter-PHP Jupyter 4.0 composer, php-zmq
Perl 5 IPerl
Perl 6 IPerl6
Perl 6.C Jupyter-Perl6 Jupyter Rakudo Perl 6
Perl 6.c Perl6 Jupyter >= 4 zeromq 4
Pike >= 7.8 Pike IPython >= 3 Wrapper, Based on Bash Kernel
PostScript IPostScript gs (ghostscript)
Powershell PowerShell IPython >= 3 Wrapper, Based on Bash Kernel
Processing.js >= 2 Calysto Processing MetaKernel
Prolog Prolog MetaKernel
Purescript IPurescript
Pyspark (Python 2 & 3), Spark (Scala), SparkR (R) sparkmagic Jupyter >=4.0 Livy Notebooks, Docker Images This kernels are implemented via the magics machinery of the ipython kernel to use Spark via Livy
Python MetaKernel Python MetaKernel
Python 2.7 AIML chatbot Jupyter 4 pyAIML Examples
Python 2.7 or >=3.4 SPARQL Jupyter 4 rdflib, SPARQLWrapper Examples Optional GraphViz dependency
Python 2.7, >= 3.3 IPyKernel Jupyter 4.0 pyzmq
Python >= 3.3 sas_kernel Jupyter 4.0 SAS 9.4 or higher
Python >= 3.5, scala >= 2.11 spylon-kernel ipykernel >=4.5 Apache Spark >=2.0 Example MetaKernel
Python >=3.4 SoS Jupyter 4 Support kernels for bash, python2/3, matlab/octabe, javascript, julia, R, Stata, SAS, and more Examples Workflow system, Multi-Kernel support
Python>=3.7.5, Groovy>3 Micronaut Micronaut Compatible with BeakerX
Python Jupyter on Golem JupyterLab >= 4.0.2 yagna >=0.12.2, jupyter >= 1.0.0, pandas >=2.0.2, tensorflow-cpu >= 2.12.0, matplotlib >= 3.7.1 Examples Python kernel, which enables JupyterLab to run Python Notebooks on decentralized Golem Network
Q KDB+/Q Kernel (IKdbQ) IPython >= 3.1 qzmq, qcrypt
Q KDB+/Q Kernel (KdbQ Kernel) Jupyter
Q PyQ Kernel Jupyter Python for kdb+
Q# IQSharp Jupyter 4 QuantumKatas
R 3.2 IRKernel IPython 3.0 rzmq
R >= 4.0 RKernel Jupyter R packages: tools, utils, pbdZMQ (>= 0.2-1), jsonlite (>= 0.9.6), uuid, digest, R6, svglite, repr, htmltools, htmlwidgets, base64enc; Python package: jupyter-server-proxy Example Notebooks A kernel for R, a language and environment for statistical computing and graphics. This kernel relies on the the more recent R6 class system and fully supports interactive widgets based on ipywidgets version 8
Racket >= 6.10 IRacket IPython >= 3 Racket, ZeroMQ Example
Raku Raku-Jupyter-Kernel Jupyter Raku examples
Redis Redis Kernel IPython >= 3 Wrapper
Ruby >= 2.3 IRuby
Rust >= 1.29.2 EvCxR Jupyter Kernel Jupyter 4, JupyterLab, nteract ZeroMQ 4.x.x Examples, Binder online demo
SQL Teradata SQL kernel and extensions JupyterLab >= 3.0 Example Notebooks
SQL mariadb_kernel Jupyter Notebook/Lab Internal Dependencies, MariaDB Server Binder notebook A Jupyter kernel for the MariaDB Open Source database
SWI-Prolog SWI-Prolog Jupyter >=4.0
Sbt >= 1.0.0 Isbt Jupyter 4.3.0 sbt example
Scala IScala
Scala, Python, R Apache Toree (formerly Spark Kernel) Jupyter Spark >= 1.5 Example
Scala>=2.10 almond (old name: Jupyter-scala) IPython>=3.0 examples Docs
Scheme Calysto Scheme Reference Guide MetaKernel
Scilab IScilab Jupyter Example MetaKernel
SetlX ISetlX Jupyter Example
Singular 4.1.0 jupyter_kernel_singular Jupyter Demo Optional PySingular for better performance, surf for images, details
Skulpt Python Skulpt Python Kernel Examples MetaKernel
GNU Smalltalk GNU Smalltalk Kernel Jupyter GNU Smalltalk
Stata stata_kernel Jupyter >=5 Stata >=14 Communicates natively with Stata
Stata iPyStata Jupyter Stata Example Notebook Implemented using magics machinery of ipython.
Stata >= 17 pystata-kernel Communicates with Stata through the pystata official Python bindings
Stata >= 17 nbstata Jupyter >= 5.2 pystata, ipydatagrid stata_kernel example
StuPyd StuPyd Kernel Jupyter >= 4 Python3, antlr4-python3-runtime >= 4.7.1 nbviewer demo
Systemtap >= 4.9, Python >= 3.10 ISystemtap ipykernel>=6.15 NodeJS ISystemtap.ipynb Podman image
TaQL TaQL Jupyter python-casacore TaQL tutorial
Tcl 8.5 Tcl Jupyter Based on Bash Kernel
Tcl 8.6 Tcl Jupyter Binder demo Written from scratch with a patched Tcl zmq binding
Torch 7 (LuaJIT) ITorch IPython >= 2.2 and <= 5.x
Typescript 3.7.2, JavaScript ESNext tslab Node.js Example notebooks Jupyter kernel for JavaScript and TypeScript - npm
Typescript >= 2.0 ITypeScript Node.js >= 0.10.0
V1.1 Common Workflow Language (CWL) Kernel examples directory
VPython IVisual Ball-in-Box
Vim script A Jupyter kernel for Vim script Jupyter
Whitespace 0.1 Whitenote Jupyter>=5 Go>=1.19 example.ipynb Docker image
Wolfram Mathematica Wolfram Language for Jupyter Wolfram Engine, i.e., a Wolfram Desktop or Mathematica installation; wolframscript is optional but recommended A Jupyter kernel for the Wolfram Language (Mathematica).
Wolfram Mathematica IWolfram Wolfram Mathematica(R), Metakernel MetaKernel
Xonsh Xonsh Example MetaKernel
Zsh >= 5.3 Z shell IPython >= 3 Example

Many kernels are available for installation on PyPI.

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)