Overview
The QIMEM platform supports an extensible plugin system that allows you to extend platform functionality with custom plugins. Plugins can be written in multiple runtimes (WASM, Python, JavaScript, Lua) and declare their capabilities through a manifest system. The plugin manifest API provides endpoints to:- List all registered plugin manifests
- Register new plugins with the platform
Plugin Manifest Structure
Unique plugin name that identifies the plugin in the system
Semantic version of the plugin (e.g., “1.0.0”, “2.1.3”)
Runtime type that executes the plugin. Supported values include:
wasm- WebAssembly runtimepython- Python runtimejs- JavaScript runtimelua- Lua runtime
Array of strings declaring the capabilities exposed by the plugin. Examples include data processing, authentication, storage, etc.
List Plugin Manifests
Response
Example Response
Register Plugin Manifest
Register a new plugin with the QIMEM platform by submitting its manifest.- WASM Plugin
- Python Plugin
- JavaScript Plugin
- Lua Plugin
cURL
Request Body
Unique identifier for the plugin
Semantic version string (e.g., “1.0.0”)
Runtime type:
wasm, python, js, or luaArray of capability strings the plugin provides
Response
Returns the registered plugin manifest object.The registered plugin name
The plugin version
The plugin runtime type
The plugin capabilities
Example Response
Plugin System Architecture
The QIMEM plugin system allows you to:- Extend Functionality: Add custom processing logic without modifying core platform code
- Choose Your Runtime: Select the best runtime for your use case (performance, ecosystem, ease of development)
- Declare Capabilities: Explicitly define what your plugin can do for discovery and validation
- Version Management: Track plugin versions and manage compatibility
Common Capabilities
- Data Processing:
transform,filter,aggregate,validate - Authentication:
oauth2,saml,ldap,mfa - Storage:
read,write,index,search - Compute:
analyze,predict,classify,score - Integration:
webhook,api,event,stream
Best Practices
- Use semantic versioning for your plugins
- Keep capability names descriptive and consistent
- Document plugin requirements and dependencies
- Test plugins in isolation before platform deployment
- Consider runtime performance characteristics when choosing between WASM, Python, JS, or Lua