11 个版本 (4 个重大变更)
0.6.0 | 2024年1月14日 |
---|---|
0.5.4 | 2024年1月6日 |
0.4.3 | 2024年1月1日 |
0.4.2 | 2023年12月31日 |
0.1.0 |
|
#26 in #plugin-system
每月140次下载
10KB
180 代码行数,不包括注释
IO-Plugin
IO-Plugin 是一个 Rust 包,它允许基于以下模型轻松创建插件系统:
- 宿主通过运行它们的可执行文件来启动其插件的实例
- 宿主在插件进程的 stdin 上发送序列化消息
- 宿主在插件进程的 stdout 上接收序列化响应
理论上,也可以使用其他语言创建插件,但它们的接口必须手动确定。消息目前使用 serde-cbor 进行序列化(这取决于我的决定 - 尽管我预计会坚持使用 serde 支持的格式)。
使用示例可在 ./io-plugins-test 下找到
检查清单
- 确定将提供的枚举转换为各种相关数据结构的结构
- 编写一个宏将上述枚举转换为数据结构
- 属性转发(不仅仅是文档)
- 创建合理的默认实现(除了插件特质方法)
- 支持泛型(类型仅限 - 没有生命周期)
- 允许提供自定义默认实现(例如 - 输出插件编译所针对的接口版本)
- 提高错误信息的清晰度(可能有一些无效的用法会导致不明确的错误)
依赖项
~6–18MB
~203K SLoC