For many years, the REALbasic plugin format has been a directory structure stored inside of a VirtualVolume. This has served us well, but isn’t ideal for a number of reasons I’m sure you’re all familiar with. For example, the fact that it’s a custom format and requires a custom tool to package can be a drawback for automated build systems.
Starting with the Xojo IDE, we’re introducing a new plugin format that uses the zip file format. The directory structure inside of the Xojo plugin format will be exactly the same as in the REALbasic plugin format, which should make migration simple. Here’s an example from one of our internal plugins:
[code][joe@Mac-Pro.local ~/] unzip -l RBRegEx.xojo_plugin
Archive: /Users/joe/RBRegEx.xojo_plugin
Length Date Time Name
0 02-21-13 16:03 RBRegEx/
0 02-21-13 16:03 RBRegEx/Build Resources/
0 02-21-13 16:03 RBRegEx/Build Resources/Linux X86/
176464 02-19-13 19:38 RBRegEx/Build Resources/Linux X86/libRBRegEx.so
0 02-21-13 16:03 RBRegEx/Build Resources/Mac Carbon Mach-O Universal/
107752 02-19-13 19:38 RBRegEx/Build Resources/Mac Carbon Mach-O Universal/RegEx.dylib
0 02-21-13 16:03 RBRegEx/Build Resources/Mac Cocoa/
107752 02-19-13 19:38 RBRegEx/Build Resources/Mac Cocoa/RegEx.dylib
0 02-21-13 16:03 RBRegEx/Build Resources/Windows/
90112 02-19-13 19:38 RBRegEx/Build Resources/Windows/RegEx.dll
482080 10 files
[/code]
Xojo plugins can also be created using Finder’s “Compress” feature, though the result is a bit sub-optimal. Here’s the same plugin compressed with Finder:
[joe@Mac-Pro.local ~/] unzip -l RBRegEx.xojo_plugin
Archive: /Users/joe/RBRegEx.xojo_plugin
Length Date Time Name
-------- ---- ---- ----
0 02-21-13 16:07 RBRegEx/
6148 02-21-13 16:07 RBRegEx/.DS_Store
0 02-21-13 16:10 __MACOSX/
0 02-21-13 16:10 __MACOSX/RBRegEx/
82 02-21-13 16:07 __MACOSX/RBRegEx/._.DS_Store
0 02-21-13 16:03 RBRegEx/Build Resources/
0 02-21-13 16:03 RBRegEx/Build Resources/Linux X86/
176464 02-19-13 19:38 RBRegEx/Build Resources/Linux X86/libRBRegEx.so
0 02-21-13 16:03 RBRegEx/Build Resources/Mac Carbon Mach-O Universal/
107752 02-19-13 19:38 RBRegEx/Build Resources/Mac Carbon Mach-O Universal/RegEx.dylib
0 02-21-13 16:03 RBRegEx/Build Resources/Mac Cocoa/
107752 02-19-13 19:38 RBRegEx/Build Resources/Mac Cocoa/RegEx.dylib
0 02-21-13 16:03 RBRegEx/Build Resources/Windows/
90112 02-19-13 19:38 RBRegEx/Build Resources/Windows/RegEx.dll
-------- -------
488310 14 files
In terms of specifics on the zip format itself, we the majority of features in the 2.0 specification, including both STORED and DEFLATE compression modes. The file extension must be ‘xojo_plugin’ in order for the IDE to load the plugin. Additionally, Xojo plugins are case sensitive and the required spelling of the Linux component is now “Linux X86”.
The Xojo IDE will continue to support the legacy REALbasic plugin format, but the future is definitely with the Xojo plugin format. Only Xojo plugins will be supported once we get to the point of having a 64-bit IDE.
We’re hoping that plugin authors will start shipping their plugins in both formats once the Xojo IDE is released. So please start testing it now so that we can get any problems resolved before the product ships and let us know what you think.