The Nufox remote XUL toolkit

By Timothy J Stebbing.

Published by The Open Source Developers' Conference Papers


My presentation will provide an overview of the Nufox project, describing the benefits of remote XUL applications over traditional client-server applications. I will discuss XUL as a tool for cross platform software development, its rich widget set and the issues relating to its use in a remote client-server environment.
I will then provide a brief overview of the assembly of technologies which have been used in Nufox; Twisted, Nevow, Livepage and Mozilla. An in-depth look at the Nufox framework its self, describing the flow of a basic set of client-server transactions with diagrams showing client event/server handler interactions.
We will then dive into some code examples, which will demonstrate the simple API for constructing an application interface, hooking up event handlers and setting/getting values on the client, with a brief discussion of twisteds deferreds.
We will then look at some of the debugging tools available through the Mozilla project in the context of Nufox development; the JS debugger and DOM Inspector, followed by a look at the various methods for deploying such an application; Firefox and XULRunner.
I will close the talk with some info on the future directions of Nufox and promising developments in the Mozilla project its self which will have an affect on the scope of Nufox for applications development.

Keywords: XUL applications, python, twisted

Timothy J Stebbing

I develop software for Nunatak Systems using technologies such as python, zope, twisted, atop OODB, ZODB, nevow, gtk and others. I have been developing a framework for server-side remote XUL applications called nufox. Nufox makes use of the nevow web templating system in twisted, but abstracts it to provide a pygtk-like api for writing XUL pages. It also abstracts nevow's LivePage live javascript library to provide server-side handlers for client-side events.