An open API service indexing awesome lists of open source software.

https://github.com/jbangdev/jbang-jupyter

Experimental jupyter kernel using jbang
https://github.com/jbangdev/jbang-jupyter

Last synced: 5 months ago
JSON representation

Experimental jupyter kernel using jbang

Awesome Lists containing this project

README

          

= JBang Jupyter Kernel

Unleash the power of Java in Jupyter notebooks.

This project packages a Java Jupyter kernel powered by `org.dflib.jjava:jjava-kernel` and embraces the JBang ethos: fast starts, simple dependency management, and a great developer experience.

== Why

- Easy dependency management with Maven coordinates and JBang-friendly conventions
- Modern Java experience in Jupyter (Java 17+)
- Built on `jjava-kernel` for robust protocol handling, with room for JBang niceties

== Status

This repo provides a working kernel launcher and sample configuration. Expect iteration as we smooth the developer and user experience.

== Requirements

- JBang (https://jbang.dev)

== Quickstart

. Install as a Jupyter kernelspec

You can use https://github.com/jupyter-java install-kernel script to install this kernel.

This will install the default kernel to the default location.

[source,bash]
----
jbang install-kernel@jupyter-java jbang
----

This will install the kernel from your local built version.

[source,bash]
----
jbang install-kernel@jupyter-java --script-ref=dev.jbang:jbang-jupyter:0.1.0-SNAPSHOT:fatjar@fatjar jbang
----

This will print out where it installed the kernel. You can manually tweak the `kernel.json` if needed.
i.e. if you want to attach a debugger to the kernel add `--debug=suspend=n`

== How it works (high level)

- Jupyter launches the kernel process with a connection file
- `Main` parses the connection, creates `JBangKernel`, and attaches sockets
- `jjava-kernel` handles the wire protocol; we focus on Java UX and JBang-style behavior