Expand description
Plugin extensibility for pim-daemon.
A plugin runs in-process under the daemon’s tokio runtime. The daemon owns mesh-essential state (identity broadcast, routing, the peer keystore); plugins consume those services through the ports defined here and contribute:
- Inbound
ControlFrame::PluginPayloadhandling for the plugin’s ownkindnamespace. - Optional reactions to peer-state changes — currently
DaemonPlugin::on_peer_forgotten.
JSON-RPC method registration is intentionally NOT routed through this trait: methods are wired into the daemon’s RPC dispatcher at compile time behind a Cargo feature, so the daemon can be built entirely without a given plugin.
Structs§
- Plugin
Context - Snapshot of services + scratch space handed to a plugin at startup.
Enums§
- Peer
Directory Event - Event published by the daemon’s
PeerDirectorywhen its peer keystore mutates. Plugins subscribe to react to identity changes without polling. - Peer
Info Source - Origin of an inbound
PeerInfoframe.
Traits§
- Control
Sender - Send a
ControlFrametoward a peer, either over a direct connected session or via the multi-hop routing table. - Daemon
Plugin - In-process plugin contract.
- Identity
Secrets - Local identity material a plugin may need (typically for ECIES decrypt of messages addressed to us).
- Peer
Directory - Read-mostly access to the daemon’s keystore of known peers.