Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Xeus Incorporation

Problem

The Xeus project is a C++ implementation of the Jupyter kernel protocol. Xeus is not a kernel, but a library meant to facilitate the authoring of kernels.

Several Jupyter kernels have been created with Xeus:

Beyond these three kernels built on top of Xeus by the Xeus authors, third-parties have developed other Jupyter kernels with Xeus:

Finally, the xeus-python kernel is used as the backend for the Jupyter debugger project. Indeed, xeus-python enables the Debug Adapter Protocol over the Control channel through new debug request/reply and debug event messages.

Proposed Enhancement

We propose to make the Xeus project officially part of Jupyter, alongside other related projects from QuantStack, namely xeus-python, xeus-cling, and xeus-calc. Some utility packages used by these kernels may also be moved with xeus, such as xhale which is used by xeus-cling for the quick help mechanism.

If this incorporation is accepted, the different projects will be modified to reflect this affiliation. Links to the governance documents, code of conduct, and contributing guidelines will be added to the readme and the documentation.

Xeus and the projects listed above would be moved to the jupyter-xeus GitHub organization.

The xwidgets, xplot, xleaflet, and xthreejs would also be moved to the same organization. Xwidgets is a C++ implementation of the Jupyter widgets protocol built upon xeus. xplot, xleaflet, and xthreejs are C++ backends to the bqplot, ipyleaflet, and PythreeJS Jupyter widget packages.

Criteria for Incorporation

The Jupyter Governance - New Subproject Process lists the criteria used to evaluate projects for incorporation into the official Jupyter organization. We address each of these criteria below.

Have an active developer community

Contributors

The core Xeus package has 12 contributors, 524 GitHub stars. Xeus-cling is slightly more popular with over 1000 stars on GitHub. As mentioned earlier, there are several other kernels built upon Xeus by third parties.

Have an active user community

The Xeus project has a steadily growing user base. The C++ kernel, in particular, is very popular as it is used for teaching the C++ programming language at several universities. Most notably, the Introduction to Computer Science course by Nicolas Thiery at University Paris Sud has over 350 students every year who typed their first lines of C++ in a Jupyter notebook.

Demonstrate continued growth and development

Beyond the xeus-based kernels, there is a new push in the project motivated by the development of the JupyterLab visual debugger. We think that the core xeus library is fairly complete already and that most of the work already done will apply to other xeus-based language kernels such as xeus-cling.

Integrate well with other official Subprojects.

Integrating with other Jupyter Components

The Jupyter philosophy: language agnosticism

We believe that offering a non-python implementation of the kernel protocol will help communicate about the language agnosticism of the Jupyter project. Unlike the one available in ipykernel, the implementation of the protocol of xeus is standalone and may serve as an example for other implementation in e.g. Java or C-Sharp.

Use solid software engineering with documentation and tests hosted with appropriate technologies

Xeus is continuously tested on multiple platforms with TravisCI and Appveyor.

We also continuously build the documentation of Xeus which is hosted on ReadTheDocs at URL https://xeus.readthedocs.io. The same holds for xeus-python and xeus-cling.

Have a well-defined scope.

The scope of xeus is very well defined in that it is limited to the implementation of the Jupyter kernel protocol.

License

The Xeus project is licensed under the BSD-3-Clause license.

We use a shared copyright model that enables all contributors to maintain the copyright on their contributions.