# 12 — 自己开发一个插件

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

- [docs.rs/flare-plugin-host](https://docs.rs/flare-plugin-host) —— 契约、
  开发指南、可运行示例说明都在 `docs` 模块下

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

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

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

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

## 三分钟版本

```bash
cargo add flare-plugin-host
```

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

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