Control / script · All operations
Write a custom component
A variant of Run a script
Supply code that the tool runs as one of its own building blocks, such as a reader, writer, learner, loss function or materialisation.
Status
- In arcform
Not built yet
arcform does not do this yet; it would live in how a Protocol runs. Its place on the roadmap
What other tools call it
Meridian's classification; an independent blind rating agreed on 95.7% of 324 rows (variant, version 3).
Apache NiFi (4)
InvokeScriptedProcessorread 2026-09-27Run a processor whose implementation is defined in a user script
ScriptedReaderread 2026-09-27Record reader whose implementation is supplied as a user script
ScriptedRecordSetWriterread 2026-09-27Record writer whose implementation is supplied as a user script
ScriptedRecordSinkread 2026-09-27Record sink whose implementation is supplied as a user script
RapidMiner Studio (2)
Python Forecasterread 2026-09-27Wrap Python code as a forecast learner whose model works with Apply Forecast
Python Learnerread 2026-09-27Wrap Python code as a learner whose model works with Apply Model
SQLMesh (1)
Custom materializationsread 2026-09-27A Python class that defines how a model is inserted, as a user-made model kind
VisiData (1)
define-commandread 2026-09-23Define a new command from a longname and a Python exec string
Yggdrasil Decision Forests (3)
BinaryClassificationLossread 2026-09-27User-written loss, gradient and hessian functions for two-class boosting
MultiClassificationLossread 2026-09-27User-written loss, gradient and hessian functions for multi-class boosting
RegressionLossread 2026-09-27User-written loss, gradient and hessian functions for boosted regression
Background
A plug-in, add-in or extension is a software component that extends the functionality of an existing software system without the system having to be rebuilt.[1] In Apache NiFi, InvokeScriptedProcessor runs a processor whose class is defined in a user's script.[2] In Rapidminer AI Studio, the Python Learner operator lets a user create a custom predictive model from a Python script.[3]
When to use it
A plug-in depends on services the host application provides and does not usually work by itself.[1] A host application operates independently of its plug-ins, so users can add and update plug-ins without changing the host application.[1] Write a custom component when the code has to take part in the tool's own machinery, such as a model the tool will apply later, rather than transform one table once. (Meridian's view)
In Rapidminer AI Studio, the model a Python Learner generates wraps the Python model the script returns, and both training and applying it require a compatible Python environment.[3] Treat the Python environment as part of the component: a model trained today must still be applied by an environment that can load it. (Meridian's view)
Apache NiFi marks InvokeScriptedProcessor as experimental, with the impact of sustained usage not yet verified.[2] Apache NiFi loads the script of an InvokeScriptedProcessor when the processor is populated with property values.[2]
The method
A host application provides services that plug-ins can use, including a way for plug-ins to register themselves and a protocol for exchanging data with them.[1] Programmers typically implement plug-ins as shared libraries loaded dynamically at run time, and programs may also load a directory of script files written in a language such as Python or Lua.[1] Early personal computer software with plug-in capability included HyperCard and QuarkXPress on the Apple Macintosh, both released in 1987.[1]
In Apache NiFi, the script given to InvokeScriptedProcessor must define a class that implements the Processor interface and set a variable named processor to an instance of that class.[2]
In Rapidminer AI Studio, an editable Python Learner lets the user change the operator declaration, such as its capabilities, parameter types and ports, and the Python script that trains and applies the model.[3]
Compared with the alternatives
A helper application also extends an application's functionality, but unlike a typical plug-in loaded into the host's address space it runs as a separate application, so it cannot crash the host.[1] A script step hands its code a table and takes one back; a custom component becomes one of the tool's own parts, which gives it more reach and leaves more to maintain. (Meridian's view)
Sources
- [1]Plug-in (computing) - Wikipediasecondary source
- [2]InvokeScriptedProcessor - Apache NiFidocumentation
- [3]Python Learner - Rapidminer Documentationdocumentation