Crates.io | kernel-sidecar |
lib.rs | kernel-sidecar |
version | 0.1.0 |
source | src |
created_at | 2024-01-14 01:04:28.884505 |
updated_at | 2024-01-14 01:04:28.884505 |
description | Jupyter Kernel sidecar |
homepage | |
repository | |
max_upload_size | |
id | 1099073 |
size | 111,513 |
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
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
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.