Popping Kernels An Exploration of Kernel Development for Jupyter Notebooks
summary
Explains what a Jupyter kernel actually does and shows the messaging spec down to five sockets (shell, iopub, stdin, control, heartbeat), the JSON message shape, and how heartbeats work. Demonstrates building a kernel by ipykernel subclassing, using PEX to launch REPLs (example: a bash wrapper) and handling execute, interrupt, restart, and iopub outputs. Notes that socket plumbing runs over ZeroMQ, links to a fill‑in notebook exercise, and provides a working bash‑kernel example derived from Tom’s code.
AI-written summary · about
chapters (14)
- 0:00Introduction
- 1:07Jupyter kernels importance
- 3:18Kernel communication with front ends
- 5:46Connection files and ports
- 7:50Python vs native kernels
- 9:39Jupyter messaging protocol
- 12:09Jupyter kernel sockets
- 20:20ZeroMQ for kernel communication
- 23:08Build first Jupyter kernel
- 27:01Bash kernel in Python
- 31:20do_execute function
- 39:11Advanced kernel features
- 40:59Install custom kernel
- 41:44Q&A
related talks
43mJupyter: Notebooks in Multiple Languages for Data Science
29mHow to port a Python kernel to Pyodide for a blazingly fast in-browser coding...
32mWhat's New in the Linux Kernel... from Python
31mPanel: Jupyter in Education
29mUsing Jupyter notebooks to develop and share interactive data displays
49mBest tools for Jupyter notebooks
28mCreating custom engines for flexible notebook execution
05mBackstage interview
