jupyter_wire 0.0.5

Jupyter kernel written in D


To use this package, run the following command in your project's root directory:

jupyter-wire

Build Status

An implementation of the Jupyter wire protocol in D.

This library was written so that any backend written in or callable by D can be a jupyter kernel. A backend must be a D type that satisfies the following compile-time interface:

import jupyter.wire.kernel: LanguageInfo, ExecutionResult;
LanguageInfo info = T.init.languageInfo;
ExecutionResult result = T.init.execute("foo");

For a backend type that doesn't require initialisation, the following code is sufficient:

struct MyBackend {
    enum languageInfo = LanguageInfo(/*...*/);
    ExecutionResult execute(in string code) {
       // ...
    }
}

import jupyter.wire.kernel: Main;
mixin Main!MyBackend;

Otherwise, initialise as necessary and call Kernel.run:

import jupyter.wire.kernel: kernel;
auto k = kernel(backend, connectionFileName);
k.run;

Please consult the example directory for a working (albeit silly) kernel.

Windows

Set the environment variables ZMQ_DIR_32 and/or ZMQ_DIR_64 for where to find the zmq.lib when building. Remember to copy the revelant .dll to the executable path.

Text and markdown output

To return text output, use the textResult helper function:

return textResult("this is the output", Stdout("This is stdout side-effect"));

Similarly for markdown output:

return markdownResult("# This is a header");

In both cases the Stdout parameter is optional.

Authors:
  • Atila Neves
Dependencies:
zmqd, asdf
Versions:
0.0.5 2019-Jul-24
0.0.4 2019-Apr-10
0.0.3 2019-Apr-04
0.0.2 2019-Mar-22
0.0.1 2018-Oct-16
Show all 7 versions
Download Stats:
  • 0 downloads today

  • 0 downloads this week

  • 10 downloads this month

  • 74 downloads total

Score:
0.3
Short URL:
jupyter_wire.dub.pm