#!/usr/bin/env python # coding: utf-8 # This is more a bookmark post that a real post. # Prompt by recent discussion on the IPyton mailing list and on twitter, I think we miss a place to rassemble informations on how to build a kernel regardless of the language and a place to reference thoses implementation. # # You shoudl probably at some point read [this blog post from IHaskell creator](http://andrew.gibiansky.com/blog/ipython/ipython-kernels/) to know more about architecture. But really at some point what you will need is example and advices. # ## Do not assume others get it right # Even if other kernel are working, this does not meen they got things right. Even IPyhton kernel had things wrong in some places. # Things can be wrong iin implementation but also in the way we though of things. In bothe case tell us and/or the author. # ## Start simple # 2. start IPython with `--debug` flag it will print all exchanges messages. # 1. set `c.Session.key=''` at start not to sign messages. # # # You do not need either to have all the protocol implemented at first, things like completion request can be added later. # ## Contribute Back # As soon as you find something which not clear or mising in the doc, please send a Pull Request, or open an Issue. # ## We have a test suite # You can probably run it against your kernel, it will give you an idea of your progress, and tell you what need to be done. # # TODO: write on how to run the test again another kernel. # ## Things become obsolete # This article is probably already obsolete, and things like [my node kernel](http://nbviewer.ipython.org/gist/Carreau/4279371/node-kernel.ipynb) don't even work because IPython has changed after I wrote it. Technically the kernel shoudl still work, but the instruction to make it run are wrong now. Try to focus on active project when searching for examples. # In[ ]: