jupyverse
jupyverse copied to clipboard
A Jupyter server based on FastAPI :rocket:
jupyverse
A set of FPS plugins implementing a Jupyter server.
Try it online:
Motivation
For the motivations behind this project, please refer to this issue in the Jupyter server team compass.
Install
With pip:
pip install "jupyverse[jupyterlab]" # for the JupyterLab front-end
# or
pip install "jupyverse[retrolab]" # for the RetroLab front-end
With mamba:
mamba install -c conda-forge jupyverse fps-jupyterlab # for the JupyterLab front-end
# or
mamba install -c conda-forge jupyverse fps-retrolab # for the RetroLab front-end
Note: you cannot have both the JupyterLab and the RetroLab front-ends enabled at the same time.
When switching e.g. from the JupyterLab to the RetroLab front-end, you need to
pip uninstall fps-jupyterlab or launch Jupyverse with --JupyterLab.enabled=false.
Development install
Clone this repository and install the needed plugins:
pip install -e plugins/jupyterlab
pip install -e plugins/login
pip install -e plugins/auth
pip install -e plugins/contents
pip install -e plugins/kernels
pip install -e plugins/terminals
pip install -e plugins/lab
pip install -e plugins/nbconvert
pip install -e plugins/yjs
pip install -e .[test]
# if you want RetroLab instead of JupyterLab:
# pip install -e plugins/retrolab
# ...
Usage
Without authentication
jupyverse --open-browser --auth.mode=noauth
This will open a browser at 127.0.0.1:8000 by default, and load the JupyterLab front-end. You have full access to the API, without restriction.
With token authentication
jupyverse --open-browser --auth.mode=token
This is the default mode, and it corresponds to Jupyter Server's token-based authentication.
With user authentication
jupyverse --open-browser --auth.mode=user
We provide a JupyterLab extension for authentication, that you can install with:
pip install git+https://github.com/davidbrochart/jupyverse-auth
You can currently authenticate as an anonymous user, or using a GitHub account.
With collaborative editing
jupyverse --open-browser --lab.collaborative
This is especially interesting if you are "user-authenticated", since your will appear as the identity you chose for authentication.