fhirschmann/knitron

use the wire protocol itself?

Closed this issue · 1 comments

Basically implement https://github.com/jupyter/notebook/blob/master/notebook/static/services/kernels/kernel.js#L711-L775 to execute code and https://github.com/jupyter/notebook/blob/master/notebook/static/services/kernels/kernel.js#L913-L924 to receive the results.

Most of the code should already be written in the IRkernel: https://github.com/IRkernel/IRkernel/blob/master/R/kernel.r#L38-L143 and https://github.com/IRkernel/IRkernel/blob/master/R/kernel.r#L298-L386

To make all the options workable in multiple kernels, you probably also need some kind of wrapper around each language type, which can reach into the kernel, set the right options to influence image params and then execute the code and return to the defaults (e.g similar to the start in knitpy: https://github.com/janschulz/knitpy/blob/master/knitpy/engines.py#L34, which hasn't yet support the image parameter, only the image type...).

In the future there will also be a jupyter kernel --kernel x way to start a kernel https://github.com/jupyter/enhancement-proposals/pull/14/files#diff-bac1b83c360741e4a9d3208e48696245R13

Hi Jan,

Thanks for your suggestions and pointers! I agree that using the zmq interface directly instead of using the Python wrapper is preferable.

I have experimented with rzmq already, but was unaware of the pointers you provided. Unfortunately, I cannot give a timeline concerning its implementation in knitron right now.