SashXB for Linux
The GNOME Project
Download | Examples | Documentation | Tour | Weblication Gallery | Community  ... Contact

Latest release: SashXB 1.1.0. -- download it today! Debian packages also available!


 Overview

SashXB is an open source application environment that exposes native functionality to JavaScript. It's ideal for web developers with HTML and JS skills who want to write full-featured native applications, as well as experienced programmers who'd appreciate the convenience of rapid application development. It uses a host of other open source projects, including Mozilla, GNOME, Glade, Gdome, and OpenLDAP.

SashXB programs are called "weblications" and can be installed and uninstalled locally or from the web. SashXB also handles recursive dependency checking (with an online locator service for installing necessary components) and a user-customizable security model.

SashXB's functionality is fully extensible. Components can be added easily (and installed as simply as a weblication would be) to support any desired native OS functionality. For instance, SashXB weblications can currently run in a simple window, in a Glade-designed UI, in a GNOME panel, or even in a console-based scripting environment. Future locations might include ScreenSaver, Nautilus, and an embeddable Bonobo component. We have also written extensions to access the native filesystem, play Vorbis files, parse and construct XML documents, communicate with other machines using the Jabber protocol, use FTP, and interact with the UI using GTK and Glade, among other things.

Sample weblications you can use include Newsbar (a scrolling customizable news headline ticker), SashPad (a simple graphical text editor), SashFTP (a full-featured graphical FTP client), WebBlazer (a simple web browser), and Checkers (a networked, multiplayer game). All of these weblications are written in less than 1k lines of code, and most are around 100 lines.

We've also provided a variety of tools that make it easy to write and publish weblications and extensions.

Please join the discussion group (see right) or contact us if you have any questions or suggestions.

This version of SashXB is released in conjunction with Mozilla 1.1. View the release notes.


 Examples

Take a look at the online tour for a visual introduction to SashXB.

Here is some code to query the user for a filename and place the contents of that file in a text-editing window:

var edit = new Sash.GTK.GtkText();
var filename = Sash.GladeApp.FileDialog("*.txt");
var file = new Sash.FileSystem.TextStream(filename);
edit.text = file.ReadAll();
file.Close();
         

Here's another example -- this time let's send a Jabber message:

var jabber = new Sash.Jabber.Session();
var message = new Sash.Jabber.Message();
message.To = "djg@us.ibm.com";
message.Body = "Hey Dave!";
jabber.SendMessage(message);
         

Now, we'll play a Vorbis sound file.

Sash.Vorbis.setCurrent(
    new Sash.Vorbis.VorbisFile("myfile.ogg")
);
Sash.Vorbis.play();
         

Finally, we'll show how easy it is to register callbacks. This snippet of panel application code tells Sash which function to call when the GNOME panel has been resized, and also adds a Quit button to its context menu.

Sash.PanelApp.OnSizeChange = Resize;
function Resize(a) { 
    document.write("My size is now " + a); 
}

Sash.PanelApp.AddMenuItem("Quit me", Quit);
function Quit() { 
    Sash.PanelApp.QuitApp(); 
}
         


About SashXB: SashXB shares the philosophy of Sash for Windows. It was intially developed during Extreme Blue 2000 by Jordi Albornoz, Tom Capasso, John Corwin, Ari Heitner, Kevin Gibbs, AJ Shankar, and Andrew Wu. Development continued in Extreme Blue 2001 with Stefan Atev, Andrew Chatham, Dave Chisolm, Kevin Gibbs, Leonard Lee, Julian Missig, and Tyeler Quentmeyer, with John Corwin and AJ Shankar as mentors. Current coders and maintainers are John Corwin, Kevin Gibbs, AJ Shankar, and Wing Yung.
 


Tour
An introduction to the functionality and versatility of SashXB.

News
Source code for the SashXB for Linux Open Source Project is now available under the LGPL license at Gnome.org. SashXB for Linux is a "from the ground up" rewrite of Sash targeted at the Linux desktop. It uses Mozilla's HTML layout engine, JavaScript interpreter, and Component Model. Sash also uses many components from the GNOME project. Two summers (and over a year) in development, SashXB is a product of IBM's Extreme Blue internship.

Community
Join the SashXB Community by subscribing to the mailing list

Also see archives of the mailing list.


Sash for Windows:


© Copyright 2002, All Rights Reserved. Contact