官网 https://rustscript.org
Playground https://playground.rustscript.org

Logo 是蟹肉棒,就和 Java 跟 JavaScript 没有任何关系一样,蟹肉棒和蟹肉(基本上)没什么关系。
语言本身实现了一部分 Rust 的语法和特性,包括 Borrow ,Move 语义,泛型等等。但我也不希望把它设计成一个通用的编程语言,或者替代现有的脚本语言。简单地来说,如果你发现你的 Rust 项目有 yaml 解决不了的运行时的动态化需求,那就可以考虑使用 RustScript 。
VM 是围绕这些语义构建的,所以在脚本在编译到字节码的过程中,所有的内存回收时间也都是已知的,因此不需要运行时的 GC 机制。VM 也做了 JIT (基于 cranelift ),AOT 和完善的调试器,可以单步,跟踪变量等等。还从 wasmtime 那里学来了最时髦的“协作式调度”。
还做了几个对现有使用场景的示例
- 基于 RustScript 构建了一个可编程的数据面 https://github.com/rustscript-lang/pd-edge
- pd-edge 对应的控制面 https://github.com/rustscript-lang/pd-controller
- Bevy 做的简单竖版射击和棋类游戏,使用 RustScript 编写游戏逻辑 https://github.com/rustscript-lang/rustscript-bevy-gameplay
- Pingora 集成 (还没写完) https://github.com/rustscript-lang/rustscript-pingora-gateway
关于以上种种的设计我都(让 AI 润色)了几篇博客 https://rustscript.org/docs/blog/。
欢迎加入讨论,或者帮助一起发展这个新项目!