feat(jupyter): support transport="ipc" in kernel connection file (#35201)#35206
Closed
tsushanth wants to merge 3 commits into
Closed
feat(jupyter): support transport="ipc" in kernel connection file (#35201)#35206tsushanth wants to merge 3 commits into
tsushanth wants to merge 3 commits into
Conversation
Deno Individual Contributor License AgreementThe following contributors need to sign the CLA before this PR can be merged: Click here to review and sign the CLA | Re-run CLA check This is an automated message from CLA Assistant |
littledivy
requested changes
Jun 14, 2026
littledivy
left a comment
Member
There was a problem hiding this comment.
Review your AI generated PRs before submitting. This has random changes unrelated to the feature and duplicate of #35202
| stream, | ||
| ); | ||
| } | ||
| // Node's util.styleText returns the text unchanged when the target stream |
Comment on lines
+3
to
+4
| Warning The following peer dependency issues were found. | ||
| To resolve, pin the affected package(s) under "overrides" in your package.json (https://docs.npmjs.com/cli/v10/configuring-npm/package-json#overrides): |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #35201.
deno jupyter --kernelwalked straight intoDeno.listen({ hostname: ip, port })regardless of the connection file'stransportfield, so any front-end that handed Deno an IPC connection file (one whoseipis a Unix-socket path prefix instead of a hostname) crashed at startup withURIError: invalid host '/tmp/.../deno-ipc': invalid char found in FQDN.Per the Jupyter wire protocol, a
transport: "ipc"connection file means each channel listens on${ip}-${port}as a Unix socket:${ip}-${hb_port}for heartbeat,${ip}-${shell_port}for shell, etc. So:listenOptsForChannel(transport, ip, port)helper that returns{ transport: "unix", path: \${ip}-${port}` }for IPC and the existing{ hostname, port }` shape for TCP.transportthrough the three socket primitives (runHeartbeat,RouterSocket,PubSocket).transport(defaulting to"tcp") out of the connection-info JSON instartJupyterKerneland passed it to each channel.op_jupyter_get_connection_infoalready returns the raw connection-file JSON, so no Rust-side change was needed — thetransportfield reaches the JS verbatim. TCP connection files take the unchanged code path; the IPC path only activates whentransport === "ipc", matching how Jupyter clients (Lab, nbclient, papermill, etc.) write the file.Repro from the issue (creates a stub IPC connection file and starts the kernel) succeeds against this build instead of throwing; under
tcpdump/ss -lx, the five expected${ip}-${port}sockets show up listening.Windows note: Deno's
transport: "unix"listener is Unix-only, so a Windows host receiving an IPC connection file will fail atDeno.listenwith the platform's existing error rather than the FQDN one. That matches the broader Jupyter ecosystem (IPC transport is historically Unix-only) and seems like the right surface to bubble up; happy to gate onDeno.build.osand emit a friendlier message if the team prefers.No spec test added — the existing
tests/specs/jupyter/install_command/suite only exercises--install, and a full kernel-startup integration test would need a ZMQ peer over Unix sockets. Smoke-tested locally via the reporter's repro snippet.