#adapter #mlua #plugin #generic #lua

adapter-mlua

将 mlua 库适配到 Adapter API 的适配器

3 个不稳定版本

0.2.0 2024年7月18日
0.1.1 2024年7月17日
0.1.0 2024年7月17日

#3#mlua

Download history 287/week @ 2024-07-14 41/week @ 2024-07-21 66/week @ 2024-07-28

每月138 次下载

MIT 许可证

37KB
63

Adapter

[!WARNING]
此库绝对不适用于生产环境。

Adapter 是一个库,旨在提供标准接口,以便可以使用不同的接口或插件进行通信。它是为了能够使用不同的语言来配置程序而创建的。

要了解背后的思路,请参阅 RAMBLINGS.md

此库的关键概念是 Adapter 特性。它基于这样的想法:与外部接口的通信应该像具有输入和输出的函数一样简单。我们使用一个标识符来确定我们想要访问的“端点”。

pub trait Adapter<'a, Input, Output, Identifier, Error> {
    fn call(&'a mut self, identifier: Identifier, input: Input) -> Result<Output, Error>;
}

适配器对它使用的输入、输出、标识符和错误是通用的。它接受一个标识符和一个输入,并返回一个包含输出或错误的成果。通过通用性,我们可以对我们的输入和输出应用更严格的特性。

仓库结构

  • adapter: 适配器特性的实现。
  • adapter-extism: 对 extism 库的适配器。
  • adapter-libloading: 对动态库的适配器。
  • adapter-mlua: 通过 mlua 包含 lua 的适配器。

依赖关系

~1.5–2.2MB
~40K SLoC