Voici turns Jupyter notebooks into static web applications
Project description
Voici
🚧 WARNING: Voici is still a work in progress and should not be used for production workloads. 🚧
Voici is a tool for generating static dashboards from Jupyter Notebooks. Unlike Voilà, which renders interactive dashboards using server-side execution, Voici uses WebAssembly (wasm) kernels to render notebooks in the browser, making the resulting dashboard entirely self-contained and distributable.
This is made possible thanks to the amazing work done in the JupyterLite project.
Features 🚀
- Generates self-contained HTML files with embedded wasm kernels.
- Works offline, without requiring a server to run the dashboard.
- Supports custom templates for styling dashboards, powered by Jinja2.
- Supports all programming languages that have JupyterLite kernels available. e.g. the default JavaScript and Python kernels JupyterLite provides, python with xeus-python, lua, nelson
Getting Started 🏁
To use Voici, you'll need to install it first:
pip install voici
Then, you can generate static dashboards from a directory of Notebooks like this:
voici build . --contents notebooks/
Once your dashboards built, you can simply serve them with a simple static server, e.g.:
cd _output
python -m http.server
The voici
command line interface is the same as the jupyter lite
one. The only difference is that the voici build
command will only generate Voici dashboards, excluding the full JupyterLab interface from the output. Running voici build .
is equivalent to running jupyter lite build . --apps voici
You can generate the classic jupyter lite
output alongside your dashboards by specifying the additional apps you want:
voici build . --apps lab --apps retro
In order to get some help on how to use the voici
command, you can run:
voici --help
We'd also suggest looking into the JupyterLite documentation for more insights on how to configure your voici
deployment.
Limitations ⚠️
Because Voici uses wasm kernels to execute notebooks, there are some limitations to the types of notebooks that can be rendered: Some notebook features may not work correctly or may have limited functionality when rendered in Voici.
Contributing 👋
If you find a bug or have a feature request, please open an issue on the GitHub repository. If you'd like to contribute code, please fork the repository and submit a pull request. We welcome contributions from anyone!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.