Piccolo - 用纯Rust实现的无栈Lua虚拟机
Piccolo,原名luster,在经过数年的中断后,于2023年4月悄然恢复了开发。曾经开发过 rlua 的 kyren,在底层 gc-arena
crate 取得突破后,回到了 piccolo
项目。这两个项目现在已经(小心地)在生产中使用,比如 Fish Folk 用在了游戏脚本中,Ruffle 用于其 ActionScript 虚拟机。
如今两个重要版本的发布了:piccolo v0.3.0 和 gc-arena v0.5。
Piccolo项目的目标,按大致优先级降序排列:
成为一个可以工作、有用的 Lua 解释器。
成为一种简单而可靠的方式,用于安全地隔离不受信任的Lua脚本。
抵御来自不受信任脚本的 DoS 攻击(脚本不能够导致解释器崩溃或使用无限量的内存,并应保证在有限时间内返回控制权给调用者)。
提供一种安全地将 Rust API 绑定到 Lua 的简便方法,具有对异常情况和边缘情况具有处理的绑定系统,并且用户类型可以安全地参与运行时垃圾回收。
与某些版本的 PUC-Rio Lua 兼容。
不要过于缓慢(例如,避免不必要的抽象化)。
ReadMore: https://github.com/kyren/piccolo/releases/tag/v0.3.0
使用 Rust 生成 IP 地址的 PNG 图片
看起来像是这样: