Getting started

Create, build, and install your first plugin.

Requirements: same OS and CPU architecture as the FeatherFly binary (e.g. linux x86_64 musl build needs a musl-linked plugin).

[lib]
crate-type = ["cdylib"]

[dependencies]
featherfly-plugin-sdk = { path = "../featherfly-plugin-sdk" }
serde_json = "1"
featherfly plugin build ./my-plugin
featherfly plugin install ./my-plugin   # copies .so to plugins dir
featherfly plugin ship ./my-plugin      # build + install
make plugin-ship PLUGIN=plugins/hello

Paths

  • Production config: /etc/featherfly/config.yml
  • Debug (--debug or debug: true): ./config.yml in the working directory
  • Plugins: system.plugins_directory (default /var/lib/featherfly/plugins/*.so)
  • Config: system.plugins_directory, plugins.enabled

Version mismatch: if descriptor.api_version ≠ daemon API version, the plugin is skipped with a warning.

Reference plugin

After install, inspect plugins/hello/src/lib.rs — it registers every v7 hook type. View hello plugin ↗