Skip to main content

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

name
string
required
Unique plugin name that identifies the plugin in the system
version
string
required
Semantic version of the plugin (e.g., “1.0.0”, “2.1.3”)
runtime
string
required
Runtime type that executes the plugin. Supported values include:
  • wasm - WebAssembly runtime
  • python - Python runtime
  • js - JavaScript runtime
  • lua - Lua runtime
capabilities
array
required
Array of strings declaring the capabilities exposed by the plugin. Examples include data processing, authentication, storage, etc.

List Plugin Manifests

curl -X GET https://api.qimem.com/v1/plugins/manifests \
  -H "Content-Type: application/json"

Response

plugins
array
Array of plugin manifest objects
name
string
Unique plugin name
version
string
Semantic version
runtime
string
Runtime type (wasm, python, js, lua)
capabilities
array
Array of capability strings

Example Response

[
  {
    "name": "data-processor",
    "version": "1.2.0",
    "runtime": "wasm",
    "capabilities": ["transform", "validate", "filter"]
  },
  {
    "name": "auth-extension",
    "version": "2.0.1",
    "runtime": "python",
    "capabilities": ["oauth2", "saml", "ldap"]
  }
]

Register Plugin Manifest

Register a new plugin with the QIMEM platform by submitting its manifest.
cURL
curl -X POST https://api.qimem.com/v1/plugins/manifests \
  -H "Content-Type: application/json" \
  -d '{
    "name": "wasm-processor",
    "version": "1.0.0",
    "runtime": "wasm",
    "capabilities": ["compute", "transform", "analyze"]
  }'
WASM plugins offer high performance and security through sandboxed execution. Ideal for compute-intensive operations.

Request Body

name
string
required
Unique identifier for the plugin
version
string
required
Semantic version string (e.g., “1.0.0”)
runtime
string
required
Runtime type: wasm, python, js, or lua
capabilities
array
required
Array of capability strings the plugin provides

Response

Returns the registered plugin manifest object.
name
string
The registered plugin name
version
string
The plugin version
runtime
string
The plugin runtime type
capabilities
array
The plugin capabilities

Example Response

{
  "name": "wasm-processor",
  "version": "1.0.0",
  "runtime": "wasm",
  "capabilities": ["compute", "transform", "analyze"]
}

Plugin System Architecture

The QIMEM plugin system allows you to:
  1. Extend Functionality: Add custom processing logic without modifying core platform code
  2. Choose Your Runtime: Select the best runtime for your use case (performance, ecosystem, ease of development)
  3. Declare Capabilities: Explicitly define what your plugin can do for discovery and validation
  4. 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

Build docs developers (and LLMs) love