Blue STEEL Zoolander

Out of the Thunderbird status meeting this week I learned that there’s already a test extension available which gives Thunderbird Extension Developers some of the new STEEL interfaces.

What is STEEL?

STEEL stands for, Scriptable Thunderbird Easy Extension Library, and that means a simple javascript library to access your data (email, addressbook, etc.) inside Thunderbird.  Like it’s Firefox counterpart FUEL, STEEL will create an easy extension development API for Thunderbird.

What can you do with STEEL? 

Right now STEEL is in it’s infancy with a 0.1 release as you can see in the implementation plan.  However there already exists lots of things you can do with the existing STEEL code.

Here are some examples:

You’ll need to grab the latest STEEL extension from bug 408370, luckily there are STEEL Extension Install Instructions which you can follow.

Where is STEEL going?

What happens with STEEL is up to extension developers.  If you’ve already developed an extension for Thunderbird please give STEEL a try and let the developers know what you think.  If you’ve been thinking of developing an extension for Thunderbird try STEEL out to see if it does what you need.

The coming API will depend a lot on the kind of feedback that can be gathered right now. Join the conversation on the #maildev IRC channel or send a message to the newsgroup.

Personally I’d still like to see a couple things happen.

Simplify extension development by relying heavily on a local cache.  As a person who wants to try out a lot of different ideas inside Thunderbird via extensions I’d like to avoid network latency issues and would rather have all the information cached and indexed locally such that all calls could be fast and synchronous.  The only signal I would want to worry about is when the cache has updated so I can refresh my calls.

Allow for objects to be retrieved separately and by-directionally queried.  For example I’d like to be able to ask for a list of attachments and then for each attachment find out what message it was sent in, who sent it, and even other attachments they sent.

  • for each ( attachment in Application.attachments )
    • from = attachment.message.from
      • for each ( attachment in from.attachments )

Improved Search APIs.  I got to talk with the excellent David Huynh of SEEK fame and asked if he could take a look at the STEEL APIs for improvements; I’m excited to see what he has to say.  Improving search is one of the major goals for Thunderbird 3 and all the great new ideas come out of extensions so development needs to be ready for that.

Malleable STEEL

A simple exercise I have been doing is to take an existing extension, even ones for outlook, and offer a Thunderbird extension developers perspective of the STEEL API .  Right now I have a breakdown of the Xobni Extension which I thought was very interesting extension that I’d like to see in Thunderbird in the future.  The breakdown examines different pieces of the extension with simple function calls that could enable it.


3 thoughts on “Blue STEEL!

Leave a Reply

Your email address will not be published. Required fields are marked *