Jupyter notebooks allow you to do something called “literature programming” in which human-friendly explanations are accompanied with code blocks. It allows scientists, researchers, and other practitioners of scientific computing to add theory behind their code including mathematical equations.
However, Jupyter notebooks may prove to be a little bit problematic when you plan to communicate your results with other non-technical stakeholders. They might get put-off by the code blocks and also the need for running the notebook to see the results. It also does not have any mechanism to prevent arbitrary code execution by the end user.
Voila addresses all the aforementioned queries by converting your Jupyter notebook to a standalone web application. After connecting to a notebook URL, Voila launches the kernel for that notebook and runs all the cells. Once the execution is complete, it does not shut down the kernel. The notebook gets converted to HTML and is served to the user. This rendered HTML includes JavaScript that is responsible for initiating a websocket connection with the Jupyter kernel.
Here’s a diagram depicting how it works:
Source: Jupyter Blog
Following are the features Voila provides:
Many Twitter users applauded this new way of creating live and interactive dashboards from Jupyter notebooks:
https://twitter.com/philsheard/status/1138745404772818944
https://twitter.com/andfanilo/status/1138835776828071936
https://twitter.com/ToluwaniJohnson/status/1138866411261124608
Some users also compared it with another dashboarding solution called Panel. The main difference between Panel and Voila is that Panel supports Bokeh widgets whereas Voila is framework and language agnostic.
“Panel can use a Bokeh server but does not require it; it is equally happy communicating over Bokeh Server's or Jupyter's communication channels. Panel doesn't currently support using ipywidgets, nor does Voila currently support Bokeh plots or widgets, but the maintainers of both Panel and Voila have recently worked out mechanisms for using Panel or Bokeh objects in ipywidgets or using ipywidgets in Panels, which should be ready soon,” a Hacker News user commented.
To read more in detail about Voila, check out the official announcement on the Jupyter Blog.
JupyterHub 1.0 releases with named servers, support for TLS encryption and more
Introducing Jupytext: Jupyter notebooks as Markdown documents, Julia, Python or R scripts
JupyterLab v0.32.0 releases