xwidgets
xwidgets copied to clipboard
C++ backend for Jupyter interactive widgets
A C++ backend for Jupyter interactive widgets.
Introduction
xwidgets is a C++ implementation of the Jupyter interactive widgets protocol.
The Python reference implementation is available in the
ipywidgets project.
xwidgets enables the use of the Jupyter interactive widgets in the C++
notebook, powered by the xeus-cling kernel and the cling C++ interpreter
from CERN. xwidgets can also be used to create applications making use of the
Jupyter interactive widgets without the C++ kernel per se.
Usage
Launch the jupyter notebook with jupyter notebook and launch a new C++
notebook by selecting the xeus C++14 kernel in the new dropdown.

Installation
We provide a package for the mamba (or conda) package manager.
- Installing
xwidgetsand the C++ kernel
mamba install xeus-cling xwidgets -c conda-forge
Then, the front-end extension must be installed for either the classic notebook or JupyterLab.
- Installing the extension for the classic notebook
mamba install widgetsnbextension -c conda-forge
- Installing the JupyterLab extension
jupyter labextension install @jupyter-widgets/jupyterlab-manager
This command defaults to installing the latest version of the JupyterLab
extension. Depending on the version of xwidgets and jupyterlab you have
installed you may need an older version.
Installation from sources
Or you can directly install it from the sources if you have all the dependencies already installed:
cmake -D CMAKE_INSTALL_PREFIX=your_install_prefix
make install
Trying it online
To try out xwidgets interactively in your web browser, just click on the binder link:
Documentation
To get started with using xwidgets, check out the full documentation
http://xwidgets.readthedocs.io/
Dependencies
All the dependencies of xwidgets are available for the mamba (or conda) package manager.
xwidgets |
widgetsnbextension |
xtl |
xproperty |
xeus |
nlohmann_json |
|---|---|---|---|---|---|
| master | ^3.0.0 | >=0.7,<0.8 | >=0.11.0,<0.12 | >=2.0,<3.0 | >=3.9.1,<3.10 |
| 0.26.1 | ^3.0.0 | >=0.7,<0.8 | >=0.11.0,<0.12 | >=2.0,<3.0 | >=3.9.1,<3.10 |
| 0.26.0 | ^3.0.0 | >=0.7,<0.8 | >=0.11.0,<0.12 | >=2.0,<3.0 | >=3.9.1,<3.10 |
| 0.25.0 | ^3.0.0 | >=0.7,<0.8 | >=0.11.0,<0.12 | >=1.0,<2.0 | >=3.6.1,<4.0 |
| 0.24.2 | ^3.0.0 | >=0.6.11,<0.7 | >=0.10.0,<0.11 | >=0.21.1,<0.26 | >=3.6.1,<4.0 |
| 0.24.1 | ^3.0.0 | >=0.6.11,<0.7 | >=0.10.0,<0.11 | >=0.21.1,<0.26 | >=3.6.1,<4.0 |
| 0.24.0 | ^3.0.0 | >=0.6.11,<0.7 | >=0.10.0,<0.11 | >=0.21.1,<0.25 | >=3.6.1,<4.0 |
| 0.23.0 | ^3.0.0 | >=0.6.11,<0.7 | >=0.10.0,<0.11 | >=0.21.1,<0.25 | >=3.6.1,<4.0 |
| 0.22.1 | ^3.0.0 | >=0.6.11,<0.7 | >=0.10.0,<0.11 | >=0.21.1,<0.25 | >=3.6.1,<4.0 |
| 0.22.0 | ^3.0.0 | >=0.6.11,<0.7 | >=0.10.0,<0.11 | >=0.21.1,<0.25 | >=3.6.1,<4.0 |
| 0.21.1 | ^3.0.0 | >=0.6.11,<0.7 | >=0.10.0,<0.11 | >=0.21.1,<0.25 | >=3.6.1,<4.0 |
| 0.21.0 | ^3.0.0 | >=0.6.11,<0.7 | >=0.10.0,<0.11 | >=0.21.1,<0.25 | >=3.6.1,<4.0 |
| 0.20.2 | ^3.0.0 | >=0.6.11,<0.7 | >=0.10.0,<0.11 | >=0.21.1,<0.25 | >=3.6.1,<4.0 |
| 0.20.1 | ^3.0.0 | >=0.6.11,<0.7 | >=0.10.0,<0.11 | >=0.21.1,<0.24 | >=3.6.1,<4.0 |
| 0.20.0 | ^3.0.0 | >=0.6.11,<0.7 | >=0.10.0,<0.11 | >=0.21.1,<0.24 | >=3.6.1,<4.0 |
| 0.19.0 | ^3.0.0 | >=0.6.5,<0.7 | >=0.8.1,<0.9 | >=0.21.1,<0.22 | >=3.6.1,<4.0 |
| 0.18.0 | ^3.0.0 | >=0.6.5,<0.7 | >=0.8.1,<0.9 | >=0.20.0,<0.21 | >=3.6.1,<4.0 |
| 0.17.0 | ^3.0.0 | >=0.6.1,<0.7 | >=0.8.1,<0.9 | >=0.19.1,<0.20 | >=3.5.0,<4.0 |
| 0.16.1 | ^3.0.0 | >=0.5.2,<0.6 | >=0.8.1,<0.9 | >=0.18.1,<0.19 | >=3.3.0,<4.0 |
| 0.16.0 | ^3.0.0 | >=0.5.2,<0.6 | >=0.8.0,<0.9 | >=0.18.1,<0.19 | >=3.3.0,<4.0 |
License
We use a shared copyright model that enables all contributors to maintain the copyright on their contributions.
This software is licensed under the BSD-3-Clause license. See the LICENSE file for details.