Skip to main content

Crate f00_plugin

Crate f00_plugin 

Source
Expand description

f00 plugin host ABI.

§ABI contract (v1)

Dynamic plugins are shared libraries (.so / .dylib / .dll) that export:

SymbolSignaturePurpose
f00_plugin_abi_versionextern "C" fn() -> u32Must return ABI_VERSION
f00_plugin_nameextern "C" fn() -> *const c_charNUL-terminated UTF-8 name
f00_plugin_on_entries_jsonoptional extern "C" fn(*const u8, usize, *mut u8, *mut usize) -> i32Transform JSON entry array

Host discovery paths (first match wins per file):

  • $F00_PLUGIN_DIR (colon/semicolon separated)
  • ~/.f00/plugins
  • ~/.config/f00/plugins (Unix) / %APPDATA%\f00\plugins (Windows)

Enable with Cargo feature plugins on f00-cli.

Structs§

Plugin
A loaded plugin library.

Enums§

PluginError

Constants§

ABI_VERSION
Current host/plugin ABI version. Bump only on incompatible C ABI changes.

Functions§

discover_plugin_paths
List plugin library basenames (for f00 --list-plugins).
load_all_plugins
Load all plugins found under search dirs. Failures for individual files are skipped when strict is false; returned as errors when strict is true.
load_plugin
Load a single plugin library from path.
plugin_search_dirs
Directories searched for plugins (may not exist).

Type Aliases§

AbiVersionFn
Required export: returns ABI_VERSION.
NameFn
Required export: static C string name.
OnEntriesJsonFn
Optional export: rewrite a JSON array of entries.