介绍 Roto:一种用于 Rust 的编译脚本语言

主要观点:NLnet Labs 正在为 Rust 开发嵌入式脚本语言 Roto,旨在为 Rust 应用提供简单、快速、可靠的脚本语言,满足 BGP 引擎 Rotonda 中复杂过滤器的需求。
关键信息

  • Roto 是静态类型、即时编译、热重载的嵌入式脚本语言,脚本在运行时用 cranelift 编译器后端编译为机器码以获得良好性能。
  • 示例脚本展示了 filtermap 和常规函数的用法,AddrRange 类型由宿主应用添加到 Roto 中,其 contains 方法也由宿主提供。
  • Roto 与 Rust 紧密集成,许多 Rust 类型、方法和函数可直接注册供 Roto 使用,且注册机制使其不局限于 Rotonda 可在其他环境使用。
    重要细节
  • 对 Roto 有快速、无运行时崩溃(排除动态类型语言)、易上手等硬性要求。
  • 脚本加载时不会自动运行,由宿主应用决定提取和运行哪些函数和 filtermaps
  • 提供了文档、仓库和示例供感兴趣者参考,且语言仍在发展中欢迎反馈,列举了一些相关的 Rust 脚本语言。
  • 注册类型不受 Rust 孤儿规则限制,只需实现 Clone 特性,非 Clone 类型可通过 RcArc 传递。
阅读 49
0 条评论