Kernel for 'Jupyter'

Provides a full implementation of the 'Jupyter' <> messaging protocol in C++ by leveraging 'Rcpp' and 'Xeus' <>. 'Jupyter' supplies an interactive computing environment and a messaging protocol defined over 'ZeroMQ' for multiple programming languages. This package implements the 'Jupyter' kernel interface so that 'R' is exposed to this interactive computing environment. 'ZeroMQ' functionality is provided by the 'pbdZMQ' package. 'Xeus' is a C++ library that facilitates the implementation of kernels for 'Jupyter'. Additionally, 'Xeus' provides an interface to libraries that exist in the 'Jupyter' ecosystem for building widgets, plotting, and more <>. 'JuniperKernel' uses 'Xeus' as a library for the 'Jupyter' messaging protocol.


If you are viewing this file on CRAN, please check latest news on GitHub here.

Changes in v1.4.1.0


  1. Build a windows interrupt handler that will listen to a Windows Event set by a parent process.
  2. Fix NPE caused during comm_info_request due to malformed comm_info_reply object.

Changes in v1.4.0.0 (on CRAN 04/23/2018)

  1. Add ability to change the default device settings as well as toggle it on/off.
  2. Proper handling of warning messages.
  3. Help is shown as a pager element and no longer clutters the notebook client.

Bug Fixes

  • Fix Rcpp::List -> json recursive utility. Before this was failing when lists were unnamed.
  • Fix history_request implementation so that the interactive console may function properly.

Changes in v1.2.3.0 (on CRAN 02/05/2018)


  1. Point to pbdZMQ R package version 0.3-2. Provides an .onLoad implementation that will search for a externally installed zeromq library. This method is provided by Wei-Chen Chen (@snoweye).

Changes in v1.2.2.0 (on CRAN 01/16/2018)


  1. Point to pbdZMQ R package version 0.3-1. This enables external zeromq dependencies to be found included/linked correctly.

Changes in v1.2.1.0 (on CRAN 01/05/2018)


  1. Remove subprocess dependency as it is unavailable on Solaris.
  2. Jupyter protocol tests are done in CI only.
  3. configure pulls in the paths by hand from the installed pbdZMQ package.
  4. include zeromq headers

Changes in v1.2.0.0 (on CRAN 01/04/2018)


  1. jclient:
  • A minimal 'Jupyter' client is implemented to support testing of 'JuniperKernel'. This client is compiled with the full package and has an un-exported API. The documentation of this API is available via the usage in tests/doRunit.R and the related files.
  • Jupyter protocol tests are now made part of this package's CI.


  • shutdown_request messages now cause a clean shutdown (with exit 0). Before this fix, a shutdown_request would trigger a q("no") from within R before the shell, ctrl, and stdin sockets could clean themslves up. This would cause the application to "hang" when it attempted to destroy the zmq::context_t, and hence the kernel would need to be forcefully shutdown.
  • is_complete_request was missing an else if between the two incomplete checks resulting in an erroneous invalid state when a quote was missing.
  • Fixed Github issue #8 "Completion suggests “N” and “A” when there’s nothing to show": complete_request now returns an empty list list() when no matches are found (was returning NA).


  • The 'zeromq' and 'pbdZMQ' static sources have been removed with a dependency on the R package 'pbdZMQ'. This is reflected in the DESCRIPTION file. Thank you to Wei-Chen Chen (@snoweye) from the pbdR core team for making this happen.

v1.0.0.0 released to CRAN on 12/19/2017

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("JuniperKernel") by Spencer Aiello, 2 years ago

Report a bug at

Browse source code at

Authors: Spencer Aiello [aut, cre, cph] , Wei-Chen Chen [ctb] , Stephan Brumme [cph] , Jake Luciani [cph] , Tony Plate [cph] , Matthieu Decorde [cph] , RStudio (Hadley Wickham) [cph] , Sylvain Corlay [cph] , Johan Mabille [cph] , Niels Lohmann [cph]

Documentation:   PDF Manual  

GPL (>= 2) license

Imports utils, jsonlite, repr, Rcpp, gdtools, data.table, methods

Depends on pbdZMQ

Suggests RUnit, roxygen2

Linking to Rcpp, gdtools

See at CRAN