The JupyterLab interface¶
Extensions and plugins and widgets -- oh, my!¶
While they sound similar, extensions <extension> and plugins serve
different purposes.
Plugins are JupyterLab’s fundamental building blocks which define
functionality and business logic.
Extensions are the delivery mechanism or “container” for plugins.
Extensions are the thing that end-users pip install.
End-users care about extensions, and developers care about plugins.
A widget is a user interface component provided by a plugin, either for the end user to display (e.g. an interactive visualization of data) or for JupyterLab to display (e.g. a document viewer that opens when you double-click a particular file type).
Extension types¶
Server extension¶
Extensions that run on the JupyterLab server, which means it has access to the same hardware as JupyterLab and can, for example, load data from disk and perform computations.
Examples:
jupyter
-server -proxy enables running, supervising, and proxying additional web services within a JupyterLab deployment. nbgitpuller enables automated fetching of content in a Git repository into JupyterLab from a special URL. Especially useful for teachers to provide their students with access to educational materials in a JupyterHub by clicking a single link.
Frontend extension¶
Extensions that run in the JupyterLab frontend (i.e. the user’s browser), which means it
can change anything about the appearance of JupyterLab and provide new {term}widgets <widget> for display and/or interactions.
Examples:
jupyterthemes provides custom appearances for Notebooks.
...
Frontend and server¶
A very common pattern is extensions which combine frontend and server extensions to provide new interface features which trigger behavior on the server.
Examples:
jupyterlab-git provides visual git management.
jupyter
-resource -usage displays information about kernel resource (CPU, RAM) usage in the frontend. gator enables graphical management of conda/mamba environments.
JupyterGIS (beta) provides a Geospatial Information System (GIS) interface for working with geospatial data.
..
MIME renderer extension (a.k.a. “mimetype” extension)¶
Extensions that tell Jupyter how to view information in a specific file type (MIME type).
These are a subset of frontend extensions which map a Widget viewer with the supported file MIME type strings.
Examples:
jupyterlab-geojson enables double-clicking on GeoJSON files and viewing them on a JupyterLab-native map viewer.
...
More...¶
🏗️ TODO! What go here?
