kernel-sidecar

Crates.iokernel-sidecar
lib.rskernel-sidecar
version0.1.0
sourcesrc
created_at2024-01-14 01:04:28.884505
updated_at2024-01-14 01:04:28.884505
descriptionJupyter Kernel sidecar
homepage
repository
max_upload_size
id1099073
size111,513
Matt Kafonek (kafonek)

documentation

README

Tests

Overview

This is an attempt to port kernel-sidecar to Rust.

Roadmap:

  • Establish ZMQ connections with a kernel from information in a connection file

  • Model the high-level Jupyter message spec and wire protocol, including hmac signing

  • Implement the Action and message delegation concepts from Python version

  • Model all Jupyter messages

  • Model in-memory Notebook and create utility handlers for updating it based on outputs

  • Test multiple Kernel backends

    • Python (ipykernel)
    • Rust (evcxr_jupyter)
    • Typescript (deno)
    • R (irkernel)
  • Implement CLI similar to Python kernel-sidecar

  • Create example app of controlling Notebooks from external calls, e.g. AI function calling

  • Create example of integration with Carabiner GPT

  • Connect to Jupyter server to stay synced with other users via y-crdt deltas

Run

Use cargo run. The main.rs script at this time starts a Jupyter Kernel as a child process, the available utility functions can start ipykernel (Python), evcxr_jupyter (Rust), or irkernel (R) kernels. After that, the script creates an Action for a kernel_info_request and awaits its completion, meaning it should run until kernel goes to idle and we see kernel_info_reply. A Handler is attached to the action to dbg! all messages related to the original request.

Commit count: 0

cargo fmt