Skip to content
Andrus Adamchik edited this page Mar 2, 2025 · 195 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 Main repository at GitHub
JupyterQ (KX Official Kernel) Jupyter kdb+ ≥ v3.5 64-bit, Python ≥ 3.6, embedPy Notebook Examples
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 example
example usage with 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
Home Assistant PyScript Jupyter Home Assistant Tutorial
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 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
Java 11+ DFLib JJava Jupyter Jupyter and JVM Started as a fork of iJava. Modern, active and well-supported. Provides extensions API for custom library integrations
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
Octave xeus-octave Jupyter Example
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 Examples 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 https://hub.docker.com/r/jm1337/jupyter-prolog-notebook/
Sbt >= 1.0.0 Isbt Jupyter 4.3.0 sbt example
Scala IScala
Scala, Python, R Apache Toree (Spark Kernel) Jupyter Spark >= 1.5 Example
Scala>=2.10 almond (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 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
YACAS Yacas
Zsh >= 5.3 Z shell IPython >= 3 Example

Many kernels are available for installation on PyPI.

Additional Related Projects

  • 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)