Annoucement: Local Browser Execution

George Phillips (phillips@cs.ubc.ca)
Mon, 13 Dec 1993 17:36:07 -0800


Have you ever wanted your WWW browser to run a program and display
it's output? Have you ever wanted to post news from your WWW
browser? If so, then I think you'll definitely be interested
in the rest of this message. If not, well, you'll probably still be
interested.

I've been working on a new URL scheme called "x-exec:" which directs
the WWW browser to execute a program locally. For full details
on how it works, upgrade patches to Mosaic 2.1 and Lynx 2-0-12, and
some sample scripts open:

http://www.cs.ubc.ca/doc/world/exec/intro

I'll describe the system only briefly here. The new URL scheme
looks like:

x-exec://program/path/information

When it sees that, the browser will look for a program called "program"
to run. What local programs may be run is configurable by the installer
and the user (default: nothing). If everything is cool, the browser
runs the program using the Common Gateway Interface
(see http://hoohoo.ncsa.uiuc.edu/cgi/interface.html) which is just
a way of telling the program about the URL that activated it and
what the program should output (generally speaking, environment
variables on the way in, a MIME-like object on stdout).

For example, if you one of my example scripts installed, opening:

x-exec://urnw/rn/unread/group/comp.infosystems.www

Will have your browser pop up a display of the subject lines of the
last 10 unread articles in comp.infosystems.www. If you open:

x-exec://postnews/?newsgroups=misc.test

You'll get a form to fill with an article to post to misc.test.

Go grab the patches, re-compile your browser, try the sample scripts
and start writing your own. Who knows, if it becomes popular
enough, x-exec: could become a standard.

One last thing. I'm certainly interested in discussing viable
alternatives to x-exec: and suggestions for improving it. Flames
about it being "a bad thing" and/or "the wrong thing" will be
accepted in the same cheerful spirit as Mosaic Motif flames.