fidius¶
A Rust plugin framework for trait-to-dylib plugin systems
fidius lets you define a Rust trait, annotate it with a macro, and get a compiled dynamic library with a stable C ABI. Host applications load, validate, and call plugins through a type-safe proxy — no handwritten FFI.
Quick Example¶
# Scaffold an interface and plugin
fidius init-interface my-api --trait ImageFilter
fidius init-plugin my-plugin --interface my-api --trait ImageFilter
# Build the plugin
cd my-plugin && cargo build
# Sign it (optional)
fidius keygen --out mykey
fidius sign --key mykey.secret target/debug/libmy_plugin.dylib
# Inspect the compiled plugin
fidius inspect target/debug/libmy_plugin.dylib
Installation¶
Learn fidius¶
Tutorials — Learn by doing¶
Step-by-step guides that walk you through building your first plugin, adding optional methods, and signing plugins.
- Your First Plugin
- Your First Python Plugin
- Optional Methods and Interface Evolution
- Signing and Verifying Plugins
- Source Packages
How-To Guides — Solve specific problems¶
Practical recipes for common tasks.
- Scaffold a Project with the CLI
- Test Plugins
- Method and Trait Metadata
- Add Async Methods
- Ship Multiple Plugins per Dylib
- Inspect a Plugin
- Development Workflow
- Create a Package Metadata Schema
- White-Label a Plugin Interface
Reference — Look up details¶
CLI flags, ABI specification, error catalog, and auto-generated API docs.
API Documentation — Generated from source¶
Auto-generated by plissken from doc comments in source code.
- fidius (facade)
- fidius-core — Descriptors, wire format, hashing, registry, metadata types
- fidius-macro — Proc macros and IR
- fidius-host — Loading, calling, signing, arch detection, arena pool
- fidius-cli — CLI commands
- fidius-test — Testing helpers (dylib_fixture, signing fixtures)
Explanation — Understand the design¶
Architecture, design decisions, and the reasoning behind the system.