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
- Host: GitHub
- URL: https://github.com/jbangdev/jbang-jupyter
- Owner: jbangdev
- Created: 2025-10-01T09:43:40.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-10-01T23:25:36.000Z (6 months ago)
- Last Synced: 2025-10-01T23:32:01.185Z (6 months ago)
- Language: Java
- Size: 9.77 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: readme.adoc
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