Quite a long time ago I made much ado about Snapdragon, a project to integrate Firefox development tools (e.g.Firebug) with Komodo (or other editors/IDEs).  Unfortunately sometimes you bite off more than you can chew (the day is only 24 hours), but in the long term I still want to accomplish some integration.  There are a lot of cool dev tools and capabilities that area available for Firefox, I’d like to be able to use them through my favorite development environment.
One of the primary elements in this kind of integration is the ability to communicate between processes in a simple way.  Back in April, we had a little get together of developers that work on various Mozilla applications and projects, and I mentioned working on a json-rpc implementation that could allow Mozilla applications to do just this.   Well, a couple weeks ago I got some working code together in our Open Komodo repository.
One of the eventual goals I’d like to get around to is adding a DBGP layer into Firebug, as well as adding other integration points.  So I started out working on a generic socket server layer that I could build services on top of.  My first service was a simple echo server.
While digging around for examples, I re-discovered jssh.  I noticed a number of blog entries where people were having issues getting or building jssh (since there is no pre built extension).  SD Connector is entirely in JavaScript, no compiling necessary.  I thought a jssh replacement would be a good test case as well, so I added a JavaScript shell service.  It works much like jssh, though it is incomplete from the perspective that it doesn’t implement the global functions that are special to jssh.  I think this service would be a good replacement for use with projects like FireWaitr.
The other service I got implemented is a socket based, full duplex, json-rpc service.  I’ve only done the most bare-bone testing on this, but it seems to do the job.  A simple macro script in Komodo can popup an alert in Firefox, or do other more tasty things.  The nice thing about using json-rpc for the protocol, you can integrate non-Mozilla applications as well.
SD Connector is still early in development, there is plenty I’d like to do with it (e.g. make the server an xpcom service, sandboxing json calls, making the config UI better), but I think it’s at a place where people can play with it, or even contribute!  You can grab SD Connector out of our repository if you want to take it for a spin.