Last week, a Jupyter Community Workshop on dashboarding was held in Paris. At the workshop, several contributors came together to build the Voila package, the details of which QuantStack shared yesterday. Voila serves live Jupyter notebooks as standalone web applications providing a neat way to share your work results with colleagues.
Why do we need Voila?
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.
How Voila works?
Here’s a diagram depicting how it works:
Source: Jupyter Blog
Following are the features Voila provides:
- Renders Jupyter interactive widgets: It supports Jupyter widget libraries including bqplot, ipyleafet, ipyvolume, ipympl, ipysheet, plotly, and ipywebrtc.
- Prevents arbitrary code execution: It does not allow arbitrary code execution by consumers of dashboards.
- A language-agnostic dashboarding system: Voila is built upon Jupyter standard protocols and file formats enabling it to work with any Jupyter kernel ( C++, Python, Julia).
- Includes custom template system for better extensibility: It provides a flexible template system to produce rich application layouts.
Many Twitter users applauded this new way of creating live and interactive dashboards from Jupyter notebooks:
Voila for Jupyter notebooks is a very exciting development. Jupyter is a great interactive environment for exploring and manipulating data, and it will be great to "simply" share the output of these and retain the interactivity. https://t.co/MTJYEdjspA
— Phil Sheard (@philsheard) June 12, 2019
From Jupyter notebooks to standalone applications and dashboards. And there's a Vue.js template ! Hope I can use it for quick ML prototypes to show to customers 😃
— Fanilo Andrianasolo (@andfanilo) June 12, 2019
Project Jupyter released voilà, a library to turn Jupyter Notebooks to web applications. If you're a Data Scientist working with Jupyter Notebooks & want to expose your visualizations to the world without much effort, this could be usefulhttps://t.co/1ykQnQnFK6@risin_developer
— Toluwani Dare J. (@ToluwaniJohnson) June 12, 2019
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.