Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

voici-0.1.1.tar.gz (2.0 MB view details)

Uploaded Source

Built Distribution

voici-0.1.1-py3-none-any.whl (1.6 MB view details)

Uploaded Python 3

File details

Details for the file voici-0.1.1.tar.gz.

File metadata

  • Download URL: voici-0.1.1.tar.gz
  • Upload date:
  • Size: 2.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.10

File hashes

Hashes for voici-0.1.1.tar.gz
Algorithm Hash digest
SHA256 6f35cb87bf9af5962a9af76fb372a63835ae5149072e83ed3d0e1de5983f43f1
MD5 57dab3e76547c8de97e076db99be33e4
BLAKE2b-256 e5361a3ab9797bbfa418b6552ded6ba98fded98a017dc329a569f45ddb4e9de5

See more details on using hashes here.

Provenance

File details

Details for the file voici-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: voici-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.10

File hashes

Hashes for voici-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cd861c943313d5a21b395b8deffb2d98de43421bcb2031d7028789eec43e80b9
MD5 8e13a1c6f43abeb3761bf486dee0aff5
BLAKE2b-256 95e5725b44bb0e972d2b336d2cf52508da820900c4159f0e94f2a2a9ecb25f29

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page