05-12, 10:30–11:00 (Europe/Paris), Louis Armand 2
IPywidgets is the go-to library for building interactive interfaces in the Jupyter notebook. What may start as an experiment with a few sliders and buttons, may evolve into a company-wide data app that needs to be production-ready quality.
The biggest issue we see for applications is managing the complexity of the code.
Reacton is a pure Python implementation of the React library, that enables the same style of programming as React, but in Python using the ipywidgets libraries.
On top of that, Reacton adds type information, allowing type checkers such as mypy to find bugs before they occur in production.
The next problem is how to run your ipywidget application outside the Jupyter notebook or Jupyter Lab environment.
Voilà is the goto library for running notebooks as standalone web applications and has support for ipywidgets. However, each request requires a new kernel, which requires starting a new process. This requires a lot of resources, and different processes also make it hard to share memory between different users/requests.
Solara allows you to write ipywidget-based applications, using a server that is running “virtual kernels” in a single process, saving resources, and leading to faster page loads.
On top of that, Solara will come with many Reacton-based components, and support for multiple pages, making it the perfect framework for writing production-ready data apps.