Zasper: A Modern and Efficient Alternative to JupyterLab, Built in Go

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Judoscale - Save 47% on cloud hosting with autoscaling that just works
Judoscale integrates with Django, FastAPI, Celery, and RQ to make autoscaling easy and reliable. Save big, and say goodbye to request timeouts and backed-up task queues.
judoscale.com
featured
CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
  1. zasper

    4X Better IDE than Jupyterlab

  2. Judoscale

    Save 47% on cloud hosting with autoscaling that just works. Judoscale integrates with Django, FastAPI, Celery, and RQ to make autoscaling easy and reliable. Save big, and say goodbye to request timeouts and backed-up task queues.

    Judoscale logo
  3. marimo

    A reactive notebook for Python — run reproducible experiments, query with SQL, execute as a script, deploy as an app, and version with git. All in a modern, AI-native editor.

    It's probably an unrelated post (apologies in advance) but I wanted to shoutout to the Marimo (https://marimo.io), it's the only Jupyter alternative that really got me excited, it's like Streamlit and Jupyter had a kid (and the kid took the best genes from both).

  4. livebook

    Automate code & data workflows with interactive Elixir notebooks

    How's the maturity compared to Livebook?

    https://livebook.dev/

  5. jupyter

    An interface to communicate with Jupyter kernels. (by emacs-jupyter)

    There already is a library that can interface emacs with Juypter it is called ein.

    See https://github.com/emacs-jupyter/jupyter

  6. nbformat

    Reference implementation of the Jupyter Notebook format

    The Jupyter community maintains a public spec of the notebook file format [1], the kernel protocol [2], etc. I have been involved with many alternative Jupyter clients, and having these specs combined with a friendly and welcoming community is incredibly helpful!!!

    [1] https://github.com/jupyter/nbformat

    [2] https://jupyter-client.readthedocs.io/en/latest/messaging.ht...

  7. enterprise_gateway

    A lightweight, multi-tenant, scalable and secure gateway that enables Jupyter Notebooks to share resources across distributed clusters such as Apache Spark, Kubernetes and others.

    https://github.com/jupyter-server/enterprise_gateway

    JupyterLab supports Lumino and React widgets.

    Jupyter Notebook was built on jQuery, but Notebooks is now forked from JupyterLab and there's NbClassic FWIU.

    Breaking the notebook extension API from Notebook to Lab unfortunately caused re-work for progress, as I recall.

    jupyter-xeus/xeus is an "Implementation of the Jupyter kernel protocol in C++*

  8. xeus

    Implementation of the Jupyter kernel protocol in C++

    https://github.com/jupyter-xeus/xeus-python#what-are-the-adv...

    JupyterLite kernels normally run in WASM; which they are compiled to by emscripten / LLVM.

    To also host WASM kernels in a go process, I just found: going:

  9. CodeRabbit

    CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    CodeRabbit logo
  10. xeus-python

    Jupyter kernel for the Python programming language

    https://github.com/jupyter-xeus/xeus-python#what-are-the-adv...

    JupyterLite kernels normally run in WASM; which they are compiled to by emscripten / LLVM.

    To also host WASM kernels in a go process, I just found: going:

  11. goingo

  12. jupyter-collaboration

    A Jupyter Server Extension Providing Support for Y Documents

    and "minrk/allthekernels". Defining how to share variables between kernels is the more unsolved part AFAIU. E.g. Arrow has bindings for zero-copy sharing in multiple languages.

    Cocalc, Zeppelin, Marimo notebook, Data Bricks, Google Colaboratory (Colab tools), and VSCode have different takes on notebooks with I/O in JSON.

    There is no CDATA in HTML5; so HTML within an HTML based notebook format would need to escape encode binary data in cell output, too. But the notebook format is not a packaging format. So, for reproducibility of (polyglot) notebooks there must also be a requirements.txt or an environment.yml to indicate the version+platform of each dependency in Python and other languages.

    repo2docker (repo2podma) builds containers by installing packages according to the first requirements .txt or environment.yml it finds according to REES Reproducible Execution Environment Standard. repo2docker includes a recent version of jupyterlab in the container.

    JupyterLab does not default to HTTPS with an LetsEncrypt self-signed cert but probably should, because Jupyter is a shell that can run commands as the user that owns the Jupyter kernel process.

    MoSH is another way to run a web-based remote terminal. Jupyter terminal is not built on MoSH Mobile Shell.

    jupyterlab/jupyter-collaboration for real time collaboration is based on the yjs/yjs CRDT. https://github.com/jupyterlab/jupyter-collaboration

    Cocalc's Time Slider tracks revisions to all files in a project; including latex manuscripts (for ArXiV), which - with Computer Modern fonts and two columns - are the typical output of scholarly collaboration on a ScholarlyArticle.

  13. jupyterlab-desktop

    JupyterLab desktop application, based on Electron.

    https://github.com/jupyterlab/jupyterlab-desktop#installatio...

    Docker Desktop and Podman Desktop are GUIs for running containers on Windows, Mac, and Linux.

    containers become out of date quickly.

    If programmer or non-programmer notebook authors do not keep versions specified in a requirements.txt upgraded, what will notify other users that they are installing old versions of software?

    Are there CVEs in any of the software listed in the SBOM for a container?

    There should be tests to run after upgrading notebook and notebook server dependencies.

    Notes re: notebooks, reproducibility, and something better than MHTML/ZIP;

  14. enhancement-proposals

    Enhancement proposals for the Jupyter Ecosystem

    https://github.com/jupyter/enhancement-proposals/pull/103#is... :

    > Any new package format must support cryptographic signatures and ideally WoT identity

    Any new package format for jupyter must support multiple languages, because polyglot notebooks may require multiple jupyter kernels.

    Existing methods for packaging notebooks as containers and/or as WASM: jupyter-docker-stacks, repo2docker / repo2podman, jupyterlite, container2wasm

    You can sign and upload a container image built with repo2docker to any OCI image registry like Docker, Quay, GitHub, GitLab, Gitea; but because Jupyter runs a command execution shell on a TCP port, users should upgrade jupyter to limit the potential for remote exploitation of security vulnerabilities.

    > Non programmers using notebooks are usually the least qualified to make them reproducible, so better just ship the whole thing.

    Programs should teach idempotency, testing, isolation of sources of variance, and reproducibility.

    What should the UI explain to the user?

    If you want your code to be more likely to run in the future,

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

Did you know that Python is
the 2nd most popular programming language
based on number of references?