Plugins.jl

Plain Old Callbacks in new Cloak - An extension system for Julia
Author tisztamo
Popularity
12 Stars
Updated Last
10 Months Ago
Started In
May 2020

Plugins

An extension system for Julia

CI Codecov experimental

Introduction

A plugin (aka extension) is a chunk of code that extends the functionality of a system. It implements so-called hooks to react to events generated by the system.

The plugin-based architecture is a popular way to develop maintainable and extensible software, but its dynamic nature introduces a performance penalty that is not always acceptable. You tipically cannot hook into performance-critical points.

Plugins.jl helps by analyzing the plugins loaded into the system and generating efficient, statically dispatched event handling code, thus allowing full optimization.

With Plugins.jl, execution of plugin code can be just as performant as a manually composed system. Inlinable hook implementations will be merged into a single function body, and non-implementing plugins are skipped with zero overhead.

Interested? Please find more info in the documentation!

Required Packages

No packages found.