12 — 自己开发一个插件
这份指南的正本随 flare-plugin-host 一起发布,读者不用克隆任何仓库:
- docs.rs/flare-plugin-host —— 契约、 开发指南、可运行示例说明都在
docs模块下
为什么放在那边而不是这里
这份文档的读者是外部插件作者,他们的入口是 cargo add flare-plugin-host。 文档跟着交付物走,才走得到读者面前。
放在仓库里同样不行:flare-plugin 与本站都是私有仓,外部访问是 404。 外部真正拿得到的只有 crates.io 上的包与 docs.rs —— 所以文档在包内。
同一份内容在两处各存一份必然漂移,所以这里不留副本,只留指路。
三分钟版本
cargo add flare-plugin-host
- 实现
ExtensionPlugin.Call:一个 RPC,(operation, JSON) -> JSON。 - 启动后
announce():声明你能处理的全部 operation,以及计费单位seat_model。 - 平台把你记进路由簿;声明之外的调用到不了你的进程。
三步的每一步都有一个不报错的失败方式(漏声明退化成 unverified、 seat_model 缺省退化成按人授权、上下文没还原表现成鉴权错), 正本里逐条标了症状与原因。