XULRunner and the Database Achilles Heel

One of the most frequent and persistent complaints about XULRunner is that I have explicitly excluded support for client/server SQL databases. Some have even gone forth to say that lack of proper database access in the platform will be it’s Achilles’ heel. And so I’m going to try and address this issue head-on:

XULRunner does have a database strategy: the platform will provide support for a SQLite embedded database API reflected into XPCOM. It will not include support for client/server database mechanisms such as MySQL/Oracle/etc. This reasons for this are fairly simple: The primary targets of XULRunner are twofold: support the Mozilla rich-client apps (Firefox and Thunderbird); and allow innovation of networked rich client apps based on web technologies. Client/server databases really don’t have any part in this strategy; Mozilla would not have any real testing/QA framework for this code if it were included. We need to keep a lean and focused platform that does not try to solve everyone’s problems.

Having said that, there are a couple solutions for doing client/server database access:

  1. Jan Varga has done client/server database code which lives in extensions/sql. If an app really needs client/server database access, it can ship the SQL extension with the application; I’m going to work with Jan to get this code into shape as a real platform-level extension and make it available on http://addons.mozilla.org/.
  2. It’s not that hard to write a web proxy which takes SQL, performs a query, and returns the results as XML: AJAX-style web apps could use this to perform SQL-based queries over XMLHttpRequest. This will be even more useful once Neil Deakin completes the template work.

I’ll have a few cool XULRunner demonstrations up shortly, including a popular AJAX-style webapp in it’s own XULRunner process (hopefully with minimize-to-tray and everything), and the beginnings of some dashboard-like widgets written in XUL+SVG that are loaded directly from the web and have web-based security permissions.

Atom Feed for Comments 8 Responses to “XULRunner and the Database Achilles Heel”

  1. Raymond Says:

    Will these examples run in a nightly build of xulrunner?? .. or do you need a selfmade build with svg / canvas / sqllite included..

  2. Benjamin Smedberg Says:

    Current nightly builds of XULRunner include SVG+canvas. SQLite is not yet included; I should turn it on.

  3. CK Says:

    Can we install extension to XULRunner now?

  4. Benjamin Smedberg Says:

    Extensions to “the platform” are covered by bug 299716 (not fixed yet).

  5. jed Says:

    Awesome.
    Very much looking forward to your examples and latest nightlies!!

    In a few month time I’m planning on starting a new product that will be xulrunner based, so I’m really excited as to what you are doing!

    It would be most excellent if there could be a built-in ‘minimize-to-tray’!

  6. TMr Says:

    While it may well be, that such things are best to be done by pluggable modules, please do not mind, f I ask you kindly to remember, that a *lot* of people are focussed on xulrunner as a generic application development platform/framework and want the *full* functionality, that has been there all the time, of course in a nicely cleaned up fashion, that it comes now.

    When mozilla.org decided to drop the ‘Suite’ they promised lower memory usage, easier usage due to less functions, which could be added by ‘extensions’.

    The ‘extensions’ “fiasco” is well known. No extension-styleguid, cluttered up menus, and the more functions one adds, the more strange stuff one gets. Menu items named like Turbo-dTA! and so on. I would be sad to see similare things happen (albeit in another fasshion) to XULRunner. XULRunner is needed by more than just the NVU and Firefox/Thunderbird/Calendar developers.

    I very much want un unstripped, unlimited RAD framework, that can do *all* that Mozilla/Firefox can do.

    As I understand it, this is your goal too. However, I have a slight angst… now, that I am aware, that the main reason Firefox is so successfull is less of a technical nature than a political (newspaper-ads, flashy website redesign, link-tightening, unkept promises, “happy-making” with surface tricks).

    Maybe I completley misunderstand what is going on behind the scenes, but, really, that, what was once called XPFE, meaning RAD of serious applications without authoring a single line of C/C++, while having all the power of XPCOM beneath, that I want to see survive.

    Thanks, and thank you for forgiving (hopefully ;-)) my illiteracy about what is going on really.

  7. Jaap Aap Says:

    Is the sqlite functionality available in 1.8.0.1? Are there any docs/examples?

    Thank you very much for xulrunner. I think this will bring open source to the masses… :-)

  8. Donald Organ Says:

    How do i get this?? I want to add the extension to XULRunner, is that possible??

Leave a Reply