搜索技巧 海洋云增白 开源地图 AI 搜索答案 沙丘魔堡2 压缩机站 自由职业 policy 小团队 颈挂空调 Chumby 个人电脑 极端主义 团队 PostgreSQL AI工具 证券 DirectX DrawingPics 化学 KDE 披萨农场 多动症 植物学 分析化学 Three.js 大会 残疾人学校 初创 QB64 更多

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

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