Internals of xeusΒΆ

xeus is internally architected around three main components:

_images/xeus_archi.svg
  • The server is the middleware component responsible for receiving and sending messages to the Jupyter client. It is built upon ZeroMQ and handles the concurrency model of the application.

  • The kernel core routes the messages to the appropriate method of the interpreter and does some book-keeping operations such as storing the message and its answer in the history manager, or sending relevant messages to the server.

  • The interpreter provides the interface that kernel authors must implement.

The interpreter and the server are well isolated from each other, only the kernel core can interact with them. The kernel core is also loosely coupled with the server, which makes it easy to replace the server implementation provided by xeus with a custom one.

xeus uses the ZeroMQ library which provides the low-level transport layer over which the messages are sent. Before reading more, it is best to familiarize yourself with the concepts of ZeroMQ.