Space Walk Plugins

Space Walk is built around a plugin system that forms one of the three pillars of the project (see application and protocol for the other two). The application is responsible for maintaining the network connection and then relays all the messages to the loaded plugins via the JavaScript window.postMessage API.

Plugins are integrated into the application as iframes and can thus be hosted everywhere on the internet. To load a plugin, all you need to do is to enter the plugins URL and you are good to go. On the plugin side, you only have to include a small lib-space-walk.js library that offers you a few simple callbacks and functions to send and receive messages.

Open Source

Space Walk builds on the open source development ecosystem of github and similar services. through github pages, it is very easy to deploy new plugins simply through your git command line. I hope that this facilitates sharing and collaboration among developers and helps to spread the bigger idea of this project.

List of recommended plugins

Following is a list of publicly available plugins for Space Walk. If you have developed your own plugins, I'd be more than happy to add them to the list. Just send me an email.


Plugin Development

To get started developing your own plugins, it is best to just look at the source code of one of the simpler plugins available. The Debugger plugin for example, just takes whatever messages it receives from the framework and writes them into a div.

It is quite likely that your plugin is only concerned with a subset of space walk features. Each message carries a type property at its root level, letting you discern different features and message types. See the protocol section for a more detailed explanation.

Github Workflow

As mentioned above, one of the goals of this project is to create a community and facilitate sharing through the central protocol and the simple use of web hosted plugins.

In the spirit of the open source movement, I encourage everyone to make their plugins available to the public (see list of recommended plugins). Thanks to github (and other, similar services) doing both in one step is easy and a very convenient way to work. All you have to do is to host your plugin on github, and make it available as github pages. Then deploying your plugin is just as simple as pushing to the gh-pages branch.

Following is a canonical, step by step instruction on how to set it up with git and github. Following these instructions will create a github hosted repository with a gh-pages deployment branch and a development dev branch. (The master has been turned into the gh-pages branch which acts as our new master.)

  1. Create a new repository on github and clone it to your computer.
  2. create a gh-pages branch and push it to github.
  3. On github, go to the repository's settings and change the default branch to gh-pages
  4. Remove the master branch from the origin
  5. Create a development branch and optionally push it to the origin

The workflow is then to work in the development branch, and to merge and push the changes to the gh-pages branch to deploy. This should be both quick and convenient to work with.