gonb icon indicating copy to clipboard operation
gonb copied to clipboard

Wasm support for use in JupyterLite

Open joshcarp opened this issue 1 year ago • 1 comments

It would be nice to be able to run this in-browser for Jupyter lite.

AFAIK the only steps that need to be changed are here:

https://github.com/janpfeifer/gonb/blob/ec07209f333a5f432a3fda9dd71dc35b67c0d113/internal/goexec/goplsclient/exec.go#L52

https://github.com/janpfeifer/gonb/blob/ec07209f333a5f432a3fda9dd71dc35b67c0d113/internal/jpyexec/namedpipes.go#L101

I might implement this, just wanted to see if this was a thing that anyone else has thought about

joshcarp avatar Jun 28 '24 10:06 joshcarp

hi @joshcarp, oh, that is so cool! Let me know if you need some help.

But having said that, there are few things to consider, and I'm not sure what is the "wasm virtual machine" available for Jupyter-Lite. From the top of my head, GoNB will try to execute: go get, go build, go fmt, gopls (the LSP/autocomplete), and the binary it just built.

The named pipes are used to establish an optional out-of-band communication with the kernel, to add support to the special interactions with the front-end (like widgets, or simply display HTML). But if it's not available in the Jupyter Lite environment, I'm sure we can find another way to communicate, and use the same trivial protocol there.

Let me know if you would like to do a VC call to discuss this in details. PRs would be most welcome as well.

janpfeifer avatar Jun 28 '24 12:06 janpfeifer