开发者Luca耗时五个月构建了Zeri——一款TUI多语言REPL,支持Python、JavaScript(Bun)、Ruby、LuaJIT,可跨语言共享变量、保存会话,并集成Ollama本地LLM。工具本身功能性完整,但作者事后反思:它更像是“架构优先”的产物,缺乏明确的用户痛点。代码已开源。
Zeri采用双进程架构:引擎用C++23编写,负责代码评估、状态与运行时协调;前端用Go(Bubble Tea + Lip Gloss)处理渲染和输入交互。两者通过自定义二进制IPC通信,帧定界使用固定头部+JSON负载,兼顾性能与可调试性。
每种语言作为独立sidecar进程运行,隔离崩溃。SharedScope特性实现跨语言变量共享:引擎持有中立类型(JSON可序列化的基本类型与简单容器)的规范副本,按值复制,不共享内存;对函数、类实例、大整数等不支持类型显式拒绝,避免静默数据损坏。IPC协议已独立为Yuumi库,附带各语言SDK。
尽管所有功能都正确运行,作者承认这是一次典型的“architecture-first”实践:功能完整但无法回答“谁需要它、解决什么具体问题”。他分享这段经历,提醒开发者警惕过度工程化,并建议项目早期就应压力测试核心假设。
GitHub
#开发者 #工具 #Zeri #TUI #REPL #Cpp23 #Go #IPC #Yuumi #跨语言
@DevToolboxHub
