Moonstone:用 Zig 编写的现代化跨平台 Lua 运行时与包管理器
来源:moonstone.sh — 2026-07-18
📋 概述
Moonstone 是一个用 Zig 编写的高性能 Lua 运行时-aware 包与环境管理器,目标是把 Cargo/pnpm 式的现代基础设施概念引入 Lua 生态,让项目完全自包含、可复现、即开即用。它通过内容寻址存储(CAS)、PubGrub 依赖求解器、符号链接隔离环境以及内置的 C 模块编译能力,自动处理 Lua/LuaJIT 版本、ABI 兼容和原生依赖,无需依赖系统级 GCC、LuaRocks 或全局安装。
🔑 核心要点
- Zig 单体静态二进制 — 单一可执行文件零依赖,自带 zig cc 可在用户机器上交叉编译原生 Lua C 模块,无需系统 C 编译器。
- 内容寻址存储(CAS) — 基于 BLAKE3 哈希将包永久缓存在全局存储中,不可变、去重、可校验,损坏的工件会被直接丢弃。
- 符号链接隔离环境 — moon sync 通过生成 .moonstone/env/ 的轻量符号链接指向 CAS,实现毫秒级环境构建和严格的项目隔离。
- PubGrub 依赖求解 — 采用 Dart/Rust 生态的先进版本求解算法,支持区间约束、冲突解释,并能回退到 LuaRocks 获取更广泛的包。
- ABI 强制校验 — 将 Lua/LuaJIT 视为一等包,切换解释器时自动重新编译匹配 ABI 的 C 模块,若 ABI 不匹配则拒绝链接,避免崩溃。
💡 金句
Lua 轻量、可嵌入且极快——但它历来把环境管理甩给宿主系统。Moonstone 改变了这一点。
👍 0
👎 0
← 返回 HN 首页