https://github.com/jbangdev/jbang-jupyter
Experimental jupyter kernel using jbang
https://github.com/jbangdev/jbang-jupyter
Last synced: 7 days 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 (10 months ago)
- Default Branch: main
- Last Pushed: 2026-05-19T16:04:16.000Z (2 months ago)
- Last Synced: 2026-05-19T19:41:20.558Z (2 months ago)
- Language: Java
- Size: 51.8 KB
- Stars: 3
- Watchers: 0
- Forks: 2
- Open Issues: 13
-
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