主要观点:NLnet Labs 正在为 Rust 开发嵌入式脚本语言 Roto,旨在为 Rust 应用提供简单、快速、可靠的脚本语言,满足 BGP 引擎 Rotonda 中复杂过滤器的需求。
关键信息:
- Roto 是静态类型、即时编译、热重载的嵌入式脚本语言,脚本在运行时用 cranelift 编译器后端编译为机器码以获得良好性能。
- 示例脚本展示了
filtermap
和常规函数的用法,AddrRange
类型由宿主应用添加到 Roto 中,其contains
方法也由宿主提供。 - Roto 与 Rust 紧密集成,许多 Rust 类型、方法和函数可直接注册供 Roto 使用,且注册机制使其不局限于 Rotonda 可在其他环境使用。
重要细节: - 对 Roto 有快速、无运行时崩溃(排除动态类型语言)、易上手等硬性要求。
- 脚本加载时不会自动运行,由宿主应用决定提取和运行哪些函数和
filtermaps
。 - 提供了文档、仓库和示例供感兴趣者参考,且语言仍在发展中欢迎反馈,列举了一些相关的 Rust 脚本语言。
- 注册类型不受 Rust 孤儿规则限制,只需实现
Clone
特性,非Clone
类型可通过Rc
或Arc
传递。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。