Skip to content

Instantly share code, notes, and snippets.

@jtpio
Last active September 19, 2021 13:14
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jtpio/3763af75ec8cd7bfdce86501563fef09 to your computer and use it in GitHub Desktop.
Save jtpio/3763af75ec8cd7bfdce86501563fef09 to your computer and use it in GitHub Desktop.
JupyterLite Show and Tell

JupyterLite

https://github.com/jtpio/jupyterlite

Use Cases

How it works

jupyterlite-diagram

JupyterLite is a remix of JupyterLab's core plugins which achieves this pure frontend scenario by:

  • Overriding JupyterLab's ServerConnection.ISettings' fetch and WebSocket properties with JavaScript objects mocking the normal behavior and replacing the network connection with pure JavaScript logic.
  • This pure JS logic calls into a JavaScript object called "JupyterLiteServer" mocking the normal server. This object is actually a Lumino App (just like JupyterLab itself) which makes use of lumino's plugin system to register the various services such as Kernels, Sessions, Kernelspecs, the Contents API, and JupyterLab setting.

Therefore, the application is extensible with new "front-end kernels" which can simply be installed as JavaScript plugins.

Packages

https://github.com/jtpio/jupyterlite/issues/34#issuecomment-819587926

Up Next

  • Update to @jupyterlab 3.1 alpha packages to:
    • grab improvements to upstream plugins
    • enable RTC for free (in theory)
      • -> fastest way for anyone to try RTC
  • Improvements to the Pyodide kernel:
    • matplotlib
    • ipywidgets
  • JupyterLab Federated Extensions
    • reuse existing third-party extensions as is
    • easy way to load from a CDN (probably requires upstream feature)
  • Something like https://github1s.com but built with Jupyter tech
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment