前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Rhai - Rust 的嵌入式脚本引擎

Rhai - Rust 的嵌入式脚本引擎

作者头像
niqin.com
发布2022-06-30 16:31:55
1.6K0
发布2022-06-30 16:31:55
举报
文章被收录于专栏:Rust 生态与实践

基于 Rust 语言丰富和创新的特性,以及超高性能的执行效率,目前在开源界,产生了众多 Rust 语言的嵌入式脚本引擎。Rhai 是新兴的,但创新性较高的一个。Rhai 提供了一种安全、简单的方式向任何应用程序添加以 Rust 语法编写的脚本,但保持了 Rust 语言“零开销”的执行效率。

Rhai 是在 Rust 语言特性之上实现,具有 no-std 特性,以及动态类型。编译时开销非常低,但执行效率很可观:在单核 2.3 GHz 的 Linux 虚拟机上,0.3 秒内,达到了超百万次迭代。

详细来说,Rhai 具有如下特性(下文仅列出了小部分):

  • 容易 类似于 Rust + JavaScript,且具有动态类型。 与 Rust 函数和类型紧密集成。 通过外部作用域,将 Rust 变量/常量无损传递到脚本中,无需实现任何特殊特性。 从 Rust 代码内,轻松调用脚本定义的函数。 很少的依赖项,实际必须具有的仅 2 个第三方 Rust crate。
  • 极快

非常低的编译时开销。

经评估,在单核 2.3 GHz 的 Linux虚拟机上,0.3秒内,迭代 100 万次。

脚本优化。

  • 动态 函数重载。 运算符过载。 用可动态加载的模块,以组织代码库。 函数指针可动态调度。 可以捕获共享变量的闭包。 支持面向对象编程(OOP)
  • 灵活 脚本引擎可以设置为发送+同步(通过同步功能)。 通过 serde crate 提供序列化、反序列化支持。 通过排除不需要的语言特性,以支持最小的构建。 支持大多数构建目标,包括 no-std、WASM。 可自行精确禁用关键字、运算符,以限制语言。 可用作 DSL。

Rhai 在 github 开源,经笔者一段时间的试用,体验效果非常不错。目前,在具体项目中,笔者正进行深入应用:主要聚焦于模板渲染辅助方面。

经笔者深入体验后,故此推荐,感兴趣的朋友可以访问网站:https://rhai.budshome.com,以作详细了解。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Rust 生态与实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档