跳至正文

12 — 自己开发一个插件

这份指南的正本随 flare-plugin-host 一起发布,读者不用克隆任何仓库:

为什么放在那边而不是这里

这份文档的读者是外部插件作者,他们的入口是 cargo add flare-plugin-host。 文档跟着交付物走,才走得到读者面前。

放在仓库里同样不行:flare-plugin 与本站都是私有仓,外部访问是 404。 外部真正拿得到的只有 crates.io 上的包与 docs.rs —— 所以文档在包内

同一份内容在两处各存一份必然漂移,所以这里不留副本,只留指路。

三分钟版本

cargo add flare-plugin-host
  1. 实现 ExtensionPlugin.Call:一个 RPC,(operation, JSON) -> JSON
  2. 启动后 announce():声明你能处理的全部 operation,以及计费单位 seat_model
  3. 平台把你记进路由簿;声明之外的调用到不了你的进程。

三步的每一步都有一个不报错的失败方式(漏声明退化成 unverified、 seat_model 缺省退化成按人授权、上下文没还原表现成鉴权错), 正本里逐条标了症状与原因。