tisztamo / Plugins.jl

Plain Old Callbacks in new Cloak - An extension system for Julia

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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!

About

Plain Old Callbacks in new Cloak - An extension system for Julia

License:MIT License


Languages

Language:Julia 100.0%