Voilà turns Jupyter notebooks into standalone web applications
Insights
voila-dashboards/voila
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
main
View all tags
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Cancel
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more .
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Switch to a lab-based app for the Voila frontend ( #846 )
* Switch to a lab-based app for the Voila frontend Co-authored-by: martinRenou
* Remove `"private": true` in `voila/package.json` * Minor updates * Convert `index.js` into typescript * Pass "this" to the WidgetRenderer We need to cast "as any" until this is merged and released: jupyter-widgets/ipywidgets#3625 * Remove install --pre ipywidgets * Update snapshots * Remove ipyvolume ui-test Co-authored-by: martinRenou
Co-authored-by: Duc Trung LE
Failed to load latest commit information.
Type
View code
Rendering of live Jupyter notebooks with interactive widgets.
Introduction
Voilà turns Jupyter notebooks into standalone web applications.
Unlike the usual HTML-converted notebooks, each user connecting to the Voilà tornado application gets a dedicated Jupyter kernel which can execute the callbacks to changes in Jupyter interactive widgets.
By default, Voilà disallows execute requests from the front-end, preventing execution of arbitrary code.
By default, Voilà runs with the strip_source option, which strips out the input cells from the rendered notebook.
Installation
Voilà can be installed with the mamba (or conda) package manager from conda-forge
mamba install -c conda-forge voila
or from PyPI
pip install voila
JupyterLab preview extension
Voilà provides a JupyterLab extension that displays a Voilà preview of your Notebook in a side-pane.
Starting with JupyterLab 3.0, the extension is automatically installed after installing voila with pip install voila.
If you would like to install the extension from source, run the following command.
jupyter labextension install @voila-dashboards/jupyterlab-preview
Usage
As a standalone tornado application
To render the bqplot example notebook as a standalone app, run voila bqplot.ipynb. To serve a directory of jupyter notebooks, run voila with no argument.
For example, to render the example notebook bqplot.ipynb from this repository with Voilà, you can first update your current environment with the requirements of this notebook (in this case in a conda environment and render the notebook with
mamba env update -f .binder/environment.yml cd notebooks/ voila bqplot.ipynb
For more command line options (e.g., to specify an alternate port number), run voila --help.
As a server extension to notebook or jupyter_server
Voilà can also be used as a Jupyter server extension, both with the notebook server or with jupyter_server .
To install the Jupyter server extension, run
jupyter serverextension enable voila jupyter server extension enable voila
When running the Jupyter server, the Voilà app is accessible from the base url suffixed with voila.
Documentation
https://voila.readthedocs.io/
Examples
The following two examples show how a standalone Jupyter notebook can be turned into a separate app, from the command-line integration.
Rendering a notebook including interactive widgets and rich mime-type rendering
Rendering a notebook making use of a custom widget library ( bqplot )
Showing the source code for a Voilà notebook
The sources of the Jupyter notebook can be displayed in a Voilà app if option strip_sources is set to False.
Voilà dashboards with other language kernels**
Voilà is built upon Jupyter standard formats and protocols, and is agnostic to the programming language of the notebook. In this example, we present an example of a Voilà application powered by the C++ Jupyter kernel xeus-cling , and the xleaflet project.
The Voilà Gallery
The Voilà Gallery is a collection of live dashboards and applications built with Voilà and Jupyter widgets.
Most of the examples rely on widget libraries such as ipywidgets, ipyleaflet, ipyvolume, bqplot and ipympl, and showcase how to build complex web applications entirely based on notebooks.
New examples can be added to the gallery by following the steps listed in the voila-gallery/gallery repository.
Development
See CONTRIBUTING.md to know how to contribute and set up a development environment.
Related projects