# Draco Plugin System Overview

Description | JRuby | Saving Results | Authoring | See Also

## Description

The Draco plugin system allows for user-authored analyses and regressions to be added to Draco, extending its functionality. Draco currently supports plugins written in JRuby, a version of the Ruby language implemented in pure Java. The plugins are loaded from a pre-defined directory at program startup, and each plugin appears to work exactly as Draco's builtin regressions and analyses.

## JRuby

The JRuby language is an object-oriented scripting language based on the Ruby language specifications. Because it is a scripting language, all plugins appear as plain text in the Draco scripting directory. The JRuby language has been extended by Approximatrix to support matrix and vector math operations using jLAPACK, a pure-Java implementation of LAPACK. More information about the JRuby implementation used in Draco is available on the technical details page.

## Saving Plugin Results

Plugin results are saved in Draco SQL files seamlessly if the plugin successfully completed computations. However, Release 1.1 of Draco simply saves results without saving any selected options or plugin code. This behavior may change in future versions of Draco.

## Authoring Plugins

The Draco plugin system is in continuous development. Release 1.1 ships with a sample plugin, Weighted Least Squares, that is both functional and demonstrates the design of Draco plugins. Because Release 1.1 represents the first release of the plugin system, the API may change in the future. Please consult the plugin system technical description for more information.

## See Also

Plugin System Technical Description
JRuby Home Page (Internet)
Ruby Language References (Internet)

Copyright © 2008 Approximatrix, LLC
Text licensed under the Creative Commons Attribution-Share Alike 3.0 License
DracoTM and the Approximatrix logo are trademarks of Approximatrix, LLC
Other trademarks are property of their respective owners