← New search

Other meanings of Jupyter

Open-source computing

Project Jupyter

Project Jupyter is an open-source project for interactive computing and data science. Its software combines live code, explanatory text, mathematical notation, visualizations, and computational results in shareable documents called notebooks.1

2014
Project established
after IPython’s evolution into a broader project
3
core languages
Python, Julia, and R represented in the name
BSD-3-Clause
common license
used by major Jupyter software repositories
1

Purpose and origins

Project Jupyter provides a common environment for writing, running, and communicating computational work. Its central document, the notebook, is a structured file containing code cells, Markdown text, equations, media, and saved outputs; the format is designed to preserve both the procedure and the explanation of an analysis.1

The project grew from IPython, an interactive Python shell created by Fernando Pérez and colleagues. In 2014, IPython’s language-independent components became Project Jupyter, while IPython continued as a Python kernel and interactive shell. The name refers to Julia, Python, and R, the first three languages emphasized by the project.2 Jupyter is therefore not a programming language or a single application, but a collection of interoperating standards, tools, and communities.

2

Architecture and workflow

Jupyter separates the user interface from the program that executes code. A notebook client communicates with a language-specific kernel through the Jupyter messaging protocol; the kernel runs code, maintains state, and returns results such as text, images, or errors.3

JupyterLab is the project’s extensible web-based environment for notebooks, terminals, text editors, consoles, and data viewers, while the classic Notebook interface remains a widely used client.4 The nbformat specification stores notebooks as JSON, making them portable and suitable for version control, although rendered outputs and execution order can create review and reproducibility problems. Kernels exist for many languages beyond the name’s original trio, including Bash, Java, MATLAB, Ruby, and Scala, through community-maintained implementations.

3

Uses and limitations

Jupyter is used for exploratory data analysis, scientific computing, teaching, demonstrations, and reproducible communication. A notebook can place a statistical argument, its source data transformations, executable code, and charts in one readable artifact; researchers also use notebooks to document simulations and produce figures for publications.1

Interactive execution is not identical to a fully reproducible experiment. Cells can be run out of order, depend on hidden state, or rely on packages and files absent from another computer. Reproducibility therefore benefits from explicit environment specifications, controlled data access, recorded versions, and automated execution or testing. Jupyter supports these practices but does not enforce them. Security is another boundary: notebooks may contain executable code, and opening an untrusted notebook can expose a user to malicious behavior; trusted-notebook mechanisms and cautious review are consequently part of responsible deployment.

4

Lesser-known aspects

Jupyter’s ecosystem extends well beyond the familiar notebook interface. JupyterHub provisions multi-user Jupyter environments, making the project useful in universities, classrooms, and shared research infrastructure; Voilà can turn notebooks into standalone interactive applications; and Binder enables temporary, shareable computing environments built from a repository’s declared dependencies.4

The notebook format is also used as a document interchange layer: tools can convert notebooks into HTML, PDF, presentations, and other formats, while kernels allow one interface to address different computational languages. Project governance is community-based and supported by institutional and individual contributors, with legal and fiscal support from NumFOCUS.5 A notable design choice is that Jupyter emphasizes protocols and reusable components rather than requiring every user to adopt one desktop application.

Glossary

Notebook
A structured document combining executable cells, prose, metadata, and saved computational outputs.
Kernel
A process that executes code for a particular programming language and communicates with a Jupyter client.
JupyterLab
An extensible web-based Jupyter client integrating notebooks with consoles, terminals, editors, and data tools.
nbformat
The JSON-based file format and specification used to represent Jupyter notebooks.

Project Jupyter is distinct from other uses of the word “Jupyter”; this entry covers the open-source interactive-computing project only.