1- # GoNB, A Modern Go Kernel for Jupyter Notebooks
1+ # GoNB, A Modern Go Kernel for Jupyter 📓 Notebooks📓
22
33[ ![ GoDev] ( https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white )] ( https://pkg.go.dev/github.com/janpfeifer/gonb?tab=doc )
44[ ![ GitHub] ( https://img.shields.io/github/license/janpfeifer/gonb )] ( https://github.com/Kwynto/gosession/blob/master/LICENSE )
99
1010
1111
12- ## For a quick start, see the [ ** tutorial** ] ( examples/tutorial.ipynb ) !
12+ ## For a quick start, see the [ ** tutorial** 🧭 ] ( examples/tutorial.ipynb )
1313
14- ## Highlights:
14+ ## ✨ Highlights:
1515
1616<img align =" right " width =" 480px " src =" https://repository-images.githubusercontent.com/599714179/38d0328a-abdb-4f69-9617-6ef136390708 " >
1717
18- * ** NEW** : Now supported by [ Jupytext] ( https://github.com/mwouts/jupytext ) : it allows one to write the notebook as a normal.
19- Go file, and use [ Jupytext] ( https://github.com/mwouts/jupytext ) to convert to a notebook (with markdown support, etc).
20- See [ example] ( https://github.com/mwouts/jupytext/issues/1244#issuecomment-2202097837 ) .
2118* Auto-complete and contextual help while coding.
2219* Rich content display: HTML, markdown (with latex), images, javascript, svg, videos, etc.
2320 * Widgets (sliders, buttons) support: interact using HTML elements. Create your own widgets!
2724 It also supports arbitrary Go compilation flags to be used when executing the cells.
2825* Faster execution than interpreted Go, used in other similar kernels -- at the cost of imperceptible increased
2926 start up, since each cell is compiled.
27+ * Supported by [ Jupytext] ( https://github.com/mwouts/jupytext ) : it allows one to write the notebook as a normal.
28+ Go file, and use [ Jupytext] ( https://github.com/mwouts/jupytext ) to convert to a notebook (with markdown support, etc).
29+ See [ example] ( https://github.com/mwouts/jupytext/issues/1244#issuecomment-2202097837 ) .
3030* Run cell's ` Test* ` and ` Benchmark* ` functions with ` go test ` , simply adding ` %test ` to cell.
3131* Support for ` go.mod ` and ` go.work ` , to allow local development. Including importing specific versions of libraries.
3232* Debug using [ gdlv] ( https://github.com/aarzilli/gdlv ) , a GUI for the [ delve] ( https://github.com/go-delve/delve ) debugger (see %help).
3838* Online help and much more, see ` %help ` .
3939* Compile and execute the Go code as WASM: allows one to do interactive widgets in notebooks. See ` %wasm ` (EXPERIMENTAL).
4040
41- ## Examples:
41+ ## 👁️🗨️ Examples:
4242
4343### Auto-complete and Contextual Help
4444
@@ -57,7 +57,7 @@ https://github.com/janpfeifer/gonb/assets/7460115/f1187dad-4c10-4d21-a73e-909001
5757
5858<img src =" docs/demo-browser.png " alt =" Browser Screenshot Demo " width =" 50% " height =" 50% " />
5959
60- ## Introduction
60+ ## 🌱 Introduction
6161
6262Go is a compiled language, but with very fast compilation, that allows one to use
6363it in a REPL (Read-Eval-Print-Loop) fashion, by inserting a "Compile" step in the middle
@@ -84,15 +84,15 @@ There is also
8484that one can interact with (make a copy first) — if the link doesn't work (Google Drive sharing publicly
8585is odd), [ download it from GitHub] ( examples/google_colab_demo.ipynb ) and upload it to Google's Colab.
8686
87- Finally, because it's compiled and not intepreted , it has a slightly different "semantic" than the Python kernels.
87+ Finally, because it's compiled and not interpreted , it has a slightly different "semantic" than the Python kernels.
8888It's highly recommended quickly browsing through the [ ** tutorial** ] ( examples/tutorial.ipynb ) .
8989
90- ## Installation
90+ ## 📦 Installation
9191
9292** Only for Linux and macOS. In Windows, it works in WSL or inside a Docker**
9393
9494
95- ### Docker
95+ ### 🐳 Docker
9696
9797GoNB offers a [ pre-built docker] ( https://hub.docker.com/r/janpfeifer/gonb_jupyterlab ) ,
9898that includes JupyterLab and GoNB.
@@ -104,11 +104,13 @@ To start it:
104104
105105``` shell
106106docker pull janpfeifer/gonb_jupyterlab:latest
107- docker run -it --rm -p 8888:8888 -v " ${PWD} " :/notebooks/host janpfeifer/gonb_jupyterlab:latest
107+ docker run -it --rm -p 8888:8888 -v " ${PWD} " :/notebooks janpfeifer/gonb_jupyterlab:latest
108108```
109109
110110Then copy&paste the URL that it outputs in your browser.
111111
112+ ** Note** : The docker allows for customization by running an arbitrary script at start up as ` root ` , which allows
113+ one to install any planned dependencies. See [ docker.md] ( docs/docker.md ) for details.
112114
113115### Linux and macOS Installation Using Standard Go Tools
114116
@@ -149,7 +151,7 @@ Install there as if it were in a linux machine.
149151
150152A pure Windows installation is not supported at this time — but contributions to add support for it would be welcome :)
151153
152- ## FAQ
154+ ## 🤔 FAQ
153155
154156* Is there are reference documentation ?
155157 * There is a help (run ` %help ` in a cell) and a [ ** tutorial** ] ( examples/tutorial.ipynb ) , which is kept up-to-date and
@@ -163,15 +165,15 @@ A pure Windows installation is not supported at this time — but contributions
163165 solutions to this. Often folks create a series of ` Must() ` functions, or simply use
164166 [ this trivial ` must ` package] ( https://github.com/janpfeifer/must ) .
165167
166- ## TODOs
168+ ## 📝 TODOs
167169
168170Contributions are welcome!
169171
170172* Windows version:
171173 * Installation.
172174 * Named-pipe implementation in ` kernel/pipeexec.go ` .
173175
174- ## Thanks
176+ ## 💖 Thanks
175177
176178* [ Go] ( golang.org )
177179* [ Jupyter] ( https://jupyter.org/ ) , what an awesome project.
@@ -180,7 +182,7 @@ Contributions are welcome!
180182 (http://reneefrench.blogspot.com/ ), see Creative Commons 3.0 Attributions license in
181183 [ Wikimedia] ( https://commons.wikimedia.org/wiki/File:Go_gopher_favicon.svg ) .
182184
183- ## Contributing
185+ ## 🤝 Contributing
184186
185187Contributions are very welcome. The code is generally well documented -- not always, but mostly. There are a also a couple of guides worth reading if contributing in the [ ` docs/ ` ] ( https://github.com/janpfeifer/gonb/tree/main/docs ) subdirectory.
186188
@@ -189,6 +191,6 @@ There are two parts of the project:
1891911 . The kernel itself: that builds the binary package. Most subpackages are under ` internal/ ` .
1901922 . The UI library in the packages under ` github.com/janpfeifer/gonb/gonbui ` .
191193
192- ## Star History
194+ ## 🌟 Star History
193195
194196[ ![ Star History Chart] ( https://api.star-history.com/svg?repos=janpfeifer/gonb&type=Date )] ( https://star-history.com/#janpfeifer/gonb&Date )
0 commit comments