求教, golang 有完全支持 go 语言的表达式引擎吗?类似于 Java 的 groovy

23 天前
 xiangxiangxiang

需求如下

  1. 脚本完全支持原生 go 语法
  2. 支持脚本动态编译、加载、执行
  3. 支持脚本内调用本地方法、远程方法( RPC )

以前写 Java 的时候,是可以通过 grovvy 动态编译 Java 代码并执行的,并且可以把 spring bean 注入到脚本中直接调用,也支持嵌套调用脚本等能力。不知道 golang 有没有类似的组件可以使用呢?

业务场景是固定输入和输出,可以动态的配置脚本去实现不同的业务规则,脚本就通过原生的 go 代码实现

1679 次点击
所在节点    Go 编程语言
11 条回复
virusdefender
23 天前
mightybruce
23 天前
有比表达式引擎更强大的 interpreter
yaegi 可以了解一下

https://github.com/traefik/yaegi
xiangxiangxiang
23 天前
@virusdefender 感谢大佬,周末调研调研
xiangxiangxiang
23 天前
@mightybruce 感谢大佬,周末调研一哈,看能不能用
bv
23 天前
Ayanokouji
23 天前
wasm?
cooltechbs
23 天前
前司搞的 https://github.com/bilibili/gengine ,语法是照着 Go 做的,但估计不符合要求,仅供参考
wkook
23 天前
joyme
22 天前
aisk
22 天前
https://github.com/cosmos72/gomacro 区别就是不支持 go 的泛型语法,而是有自己一套。
Kauruus
16 天前
实在不行你可以编译成 wasm 然后用 wazero 执行。

直接支持全部 Go 特性,直接用 Go 编译器编译,通过 wazero 暴露方法给它调用。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1085829

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX