QB64 搜索技巧 核手提箱 文字记录 海洋云增白 开源地图 Bliss AI 搜索答案 深海沉船 自由职业 policy 小团队 颈挂空调 Chumby 个人电脑 极端主义 团队 世界 PostgreSQL AI工具 证券 DirectX 防溢 DrawingPics Zulip 儿童读物 化学 连续滚动 代码审查 三菱电机 更多

如何用Rust构建插件系统 (www.arroyo.dev)

本文详细介绍了如何在Rust中构建动态链接、基于FFI的插件系统。作者首先讨论了Arroyo(一个实时SQL引擎)如何使用户定义函数(UDF)成为可能。作者介绍了各种方法,包括嵌入脚本语言、RPC调用、编译为Wasm和共享库,最终选择了共享库并解释了原因。文章深入研究了使用C ABI、设计数据类型、导出函数、处理恐慌以及编译和调用FFI函数的实现细节。作者提供了一个使用dlopen2库的示例插件和主机代码,展示了该方法的实用性。