A Jupyter kernel for MoonBit — write and run MoonBit cells interactively. Includes a pure-MoonBit ZeroMQ (ZMTP 3.1) protocol implementation that can be reused independently.
生态调研结论(2026-09,mooncakes.io 全量关键词扫描 + GitHub/GitLink 检索): MoonBit 生态已有 TLS、Raft、Kafka/NATS/AMQP 客户端、OpenTelemetry 等, 但 ZeroMQ 与 Jupyter Kernel 均为空白,本项目同时填补两者。
Tip: 在 moonup 或 moon 官网装好 CLI 后,用 moon --version 验证。
git clone https://github.com/Mr-Shi123/moonjupyter
cd moonjupyter
# 校验 + 单元测试(需要 node)
moon check --target js
moon test --target js
# 注册 kernelspec(写入 Jupyter kernels 目录)
node install.mjs💡 在 JupyterLab 里可以直接 Shift+Enter 执行 cell,和 Python kernel 完全一致。
println("hello from MoonBit 🥮")
for i = 0; i < 5; i = i + 1 {
println("cell line \{i}")
}moonjupyter/
├── bytesx/ 字节工具(UTF-8 编解码、hex、拼接)
├── sha256/ 纯 MoonBit SHA-256 + HMAC-SHA256(FIPS 180-4 / RFC 2104 向量测试)
├── zmtp/ ZMTP 3.1 协议核心(纯逻辑,可独立发布复用)
├── jupyter/ Jupyter 消息协议 v5.4(信封/签名/连接文件)
├── nodeff/ Node.js FFI:TCP server、zlib、子进程、随机数
├── kernel/ 会话编排:通道绑定、请求分发、cell 执行
├── main/ 入口(解析连接文件并启动 kernel)
├── launcher.mjs Jupyter -> moon -> node 的启动器
├── install.mjs 注册 kernelspec
└── docs/ARCHITECTURE.mdJupyterLab ──(5×TCP)── Node 传输层(nodeff) ── ZMTP 3.1 状态机 ── Jupyter 消息层 ── kernel 编排
│
cell 写入临时项目
moon run src/main
stdout/stderr -> iopubmoon test --target js # SHA-256/HMAC 官方向量、ZMTP 握手与帧编解码、消息往返、UUIDnode _build/js/debug/build/main/main.js -f <connection-file> &
node tools/e2e.mjs <connection-file>Install
Download zipA Jupyter kernel for MoonBit — write and run MoonBit cells interactively. Includes a pure-MoonBit ZeroMQ (ZMTP 3.1) protocol implementation that can be reused independently.