tessell-mruby
tessell-mruby
Tessell 的可选 mruby 脚本 / 插件层。实验性项目,当前处于 阶段 0(计划冻结):仓库里是方案、骨架与验收口径,可用实现按 docs/plan.md 的 P0 任务逐项落地。
定位不是"用 Ruby 写 Tessell 应用",而是给已有 Tessell 应用增加可选的脚本、插件、热重载能力。主应用模型仍然是有静态类型与零分配承诺的 Crystal。
状态
| 项目 | 状态 |
|---|---|
| 计划 / 方案 | ✅ 冻结(docs/plan.md、docs/design.md) |
| 仓库骨架 | ✅ 仅版本占位,无可用 API |
| P0 spike(counter demo + 六项门禁) | ⏳ 计划中,估 8–10 人日 |
| P1 独立 shard 发布 | ⏳ 未开始 |
为什么单独一个仓库
tessell是 GUI 核心,不能依赖mrb:Crystal 的 shard 依赖没有 optional 语义,一旦声明,所有 Tessell 用户都会被拖去装 Ruby / C 工具链并先跑make,直接破坏"单 exe、裸 PATH 可跑"的分发口径。mrb.cr是通用 mruby 绑定,不应该知道窗口、Decl、UiKey这些 GUI 概念。- 桥接层同时依赖两者,只能住在第三个仓库:
tessell ← tessell_mruby → mrb → libmruby.a。
依赖与前置条件
- Tessell:Crystal ≥ 1.21,Windows 已验证(MSYS2 UCRT64)。
- mrb.cr:固定 commit 消费,不 fork。
- 上游缺口跟踪:ShiningRay/mrb.cr#1(Windows 链接名、lockfile、bison/gperf 文档,以及 block /
Proc/yield/funcall绑定)。 - 首次使用需在
mrb.cr目录执行其make,产出lib/libmruby.a与 shim;Windows 下的 mingw 构建路径已实测通过(见 issue #1)。
文档
docs/plan.md:目标、非目标、三阶段计划、六项门禁、工时、风险登记、验收标准。docs/design.md:依赖方向、线程与 GC 模型、值边界、句柄表、事件流、错误隔离、性能预算。docs/demo.md:P0 验收用 hero demo「Log Explorer」——热重载、错误隔离、性能 HUD 与 G1–G6 的对应。examples/counter/counter.rb:目标形态的脚本示例(当前不可运行,仅冻结 API 方向)。
明确不做
- Ruby / CRuby 嵌入,或 gem 生态支持(那是"C ABI 共享库 + 官方 gem"的另一条产品线)。
- 不可信代码沙箱。mruby 没有执行配额,死循环会卡住 UI 线程;本仓库只服务可信插件,不可信输入需独立进程。
- 把脚本层变成 Tessell 的主应用模型;零分配门禁不覆盖脚本路径。
许可证
MIT,见 LICENSE。
Repository
tessell-mruby
Owner
Statistic
- 0
- 0
- 0
- 0
- 2
- about 1 hour ago
- November 14, 2026
License
MIT License
Links
Synced at
Sat, 14 Nov 2026 09:10:23 GMT
Languages