Snakemake plugin catalog
This catalog collects information about and documentation of all Snakemake plugins published on PyPI. Note that plugin support is available in Snakemake 8.0 and later. Via plugins, Snakemake enables users and developers to extend the core functionality, e.g. by providing backends for execution and storage, or supporting different ways of logging or scheduling. Via stable, concise, and well documented semantically versioned interfaces, plugin evolution can happen independently of the main Snakemake codebase. The following illustration depicts the general architecture of Snakemake and its plugin interfaces:
Contributing
Improve existing plugins
Improve existing plugins by filing issues or creating pull requests at the respective plugin Github repository (see the docs of each plugin here).
Create new plugins
Snakemake offers the following plugin types (the list will be further extended in the future):
executor plugins
storage plugins
logger plugins
report plugins
scheduler plugins
Each plugin type has a dedicated plugin interface package which offers stable and semantically versioned Python base classes that have to be implemented. The interfaces are documented in the respective plugin interface repositories:
When starting a new plugin, use the snakedeploy scaffold-snakemake-plugin subcommand. It will generate skeleton code for your desired plugin type as well as adding a testing infrastructure and continuous integration.
New plugins will be automatically found on PyPI (which implies that they have to be released to PyPI first) and added to this catalog. If you expect your plugin to appear here but do not see it, please check the nightly github action for errors with your plugin (will occur in the logs).
Improve the catalog
Improve the catalog itself by filing issues or creating pull requests at https://github.com/snakemake/snakemake-plugin-catalog.