refabricator icon indicating copy to clipboard operation
refabricator copied to clipboard

Plugin-Concept for binary

Open woeps opened this issue 5 years ago • 0 comments

Refabricator will be published as a library for anyone to use and build on top of it. But...

It would be great to provide a prebuilt binary for the most common use-cases but still enable devs to extend functionallity where needed without the need to compile everything over again.

There are 2 projects I know about which could help:

The experience I'd currently like to look into is:

  • "extension points" / "hooks" in the binary where custom code could change the binary's behaviour
  • cli arg to specify a reason/ocaml file per "extension point" (note: not compiled!)

This way a dev would just implement a module for a given module type (depending on what he/she wants to customize) and pass the location of this file to the binary as a cli argument.


Questions

Which extension points would be most desirable?

Some ideas:

  • customFabricator: custom implementation of a fabricator to change how data is aggregated (not sure: add ths fabricator or replace others?)
  • beforeRefabricators: custom implementation of a refabricator which is run before all default refabricators
  • afterRefabricators: custom implementation of a refabricator which is run after all default refabricators
  • replaceRefabricators: custom implementation of a refabricator to change how data is modified
  • replaceFactory: custom implementation of a factory to change how generated data is stored

Are some missing? How shall they be prioritized?

Which functionality to support through cli args and when are extension points needed?

The binary should have some cli arguments to specify options in the default setup. How far can someone get with just using cli args? And where are extension points really needed?

woeps avatar Feb 23 '20 18:02 woeps