跳到正文

核心概念

ReliaForge 将一组精简的契约明确表达出来,让插件工作区即使持续增长也依然便于检查。

导入前先验证清单

每个插件都从 manifest.json 开始。在导入任何插件入口点之前,ReliaForge 会验证所有身份、 API 版本、依赖、版本范围、循环依赖和能力所有者。一个无效分支可以被隔离,同时不隐藏其他 相互独立的有效插件。

生命周期状态与健康状态不同

生命周期状态说明运行时已经执行了什么:

text
discover -> validate -> initialize -> start -> stop

健康状态说明已加载插件当前是健康、降级、出错还是已停止。插件不会把生命周期状态改成 degraded;这种状况属于它无副作用的健康快照。

依赖能力,而非导入实现

提供者注册诸如 demo.greeting 的点分能力名。消费者声明对提供者的依赖,并通过消费者自己 拥有的运行时协议解析服务。插件不会导入其他插件的内部模块。

这样可以保留三个重要性质:

  • 清单依赖图始终是权威来源;
  • 消费者依赖的是行为,而非具体类;
  • 提供者清理资源时,只会移除它自己拥有的资源。

设置只有一个来源

每个插件都可以声明一个 Python PluginSettings 子类。运行时验证环境输入,注入唯一的设置 实例,并生成控制台所展示的公开 JSON Schema。插件目录响应和错误消息都不会包含敏感值。

操作由服务端决定

插件目录记录包含 available_actions。运行时依据真实实例、状态、依赖和活跃依赖者生成该列表。 客户端只负责渲染,既不推断生命周期转换,也不把它当作授权依据。

在线演示为每个插件提供空列表,因此无需维护第二套界面策略,也不会出现启动、停止或重启控件。

进程内扩展,而非沙箱

插件是同一进程内受信任的 Python 扩展。ReliaForge 提供所有权、验证、超时和清理边界, 但它不是用于运行不受信任代码的安全沙箱。

基于 MIT 许可证发布。