MedUX

OpenSource EMR

User Tools

Site Tools


en:dev:drafts:plugins

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
en:dev:drafts:plugins [2017/10/25 21:21] – ↷ Page moved from en:drafts:plugins to en:dev:drafts:plugins nerdocen:dev:drafts:plugins [2019/09/15 16:23] (current) nerdoc
Line 1: Line 1:
-====== Plugins ======+====== Plugin Drafts ======
  
-Here is draft of how a medux plugin should be done.+As MedUX needs to be completely modular, we need a plugin framework that has some capabilities:
  
-There are several plugin systems that are available for python and could be possible as base:+  * **it must be easy** to understand and use  
 +  * **it must be maintained**. It must be a framework that will not vanish in half a year.  
 + 
 +There are several plugin systems that are available for python,  
 + and could be possibly used as base. A good overview is [[http://wehart.blogspot.co.at/2009/01/python-plugin-frameworks.html|here]]. 
 +I'll leave out all the ones that do not fit here and just list the ones 
 +that are taken into consideration for MedUX: 
 + 
 +  * [[https://gitlab.com/nerdocs/gdaps|GDAPS]] - our own plugin system
   * [[http://martyalchin.com/2008/jan/10/simple-plugin-framework|Marty Alchin's framework]] - nice start.   * [[http://martyalchin.com/2008/jan/10/simple-plugin-framework|Marty Alchin's framework]] - nice start.
-  * [[http://yapsy.sourceforge.net/|Yapsy]] - maybe too narrow+  * [[http://yapsy.sourceforge.net|Yapsy]] - maybe too narrow 
 +  * [[https://github.com/PyUtilib/pyutilib/|PyUtilib]] - Loosely derived from trac. I would use just the plugin framework core. Documentation of the "Component Architecture" is [[https://software.sandia.gov/trac/pyutilib/export/1831/pyutilib.component.doc/trunk/doc/plugin/pca.pdf|here]] 
 + 
 +Old ones (not taken into consideration further): 
   * [[http://trac.edgewall.org/browser/branches/1.0-stable/trac/core.py|trac]] - only for web...   * [[http://trac.edgewall.org/browser/branches/1.0-stable/trac/core.py|trac]] - only for web...
-  * [[https://software.sandia.gov/trac/pyutilib|PyUtilib]] - derived from trac, good, but not maintained any more since 2012?+  * [[https://pythonhosted.org/django-plugins/|Django-Plugins]] - only Django, but seems very nice. 
 +  * [[https://github.com/mitsuhiko/pluginbase|Pluginbase]] - stability?? 
 +  * [[https://github.com/daltonmatos/plugnplay|PlugNPlay]] - small, inactive...??
  
-Maybe take the "best" out of them and compose our own? 
  
 Brainstorming: Brainstorming:
-  * Cryptographic (PGP, or at least SHA2) source authentication / integrity check.+  * Cryptographic (PGP, or at least SHA2) source authentication / integrity check / plugin signing.
   * Plugins as ZIP files or directories   * Plugins as ZIP files or directories
   * Plugin class where plugins can derive from, or duck typing   * Plugin class where plugins can derive from, or duck typing
en/dev/drafts/plugins.1508959300.txt.gz · Last modified: 2017/10/25 21:21 by nerdoc