Skip to content

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

License

Notifications You must be signed in to change notification settings

tisztamo/Plugins.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Resources

License

Stars

Watchers

Forks

Languages