Request for comments: gwebd and gtkwebd



Hello.

Over the weekend Codrin Grajdeanu and I have implemented:

gwebd: A web server implemented on glib.  It can be used to add a web
server to an application that uses a glib main loop, defining handlers
for specific URLs.  It's currently ~700 lines of code.
http://wiki.freaks-unidos.net/gwebd

gtwekbd: A web server on top of gwebd meant to expose information
about the widgets of a given application over HTTP and to let one use
HTML forms to deliver signals to them.  It's currently ~500 lines of
code.  We added a script that uses LD_PRELOAD to run an existing GTK
application with an embedded web server without the need to recompile
it.  http://wiki.freaks-unidos.net/gtkwebd

Both are released under GPLv3.

Our vision is to make it easy for a GTK user that wants to automate
something to (1) start playing with a browser to see how to do what he
wants and then (2) just implement that in whatever language he wants
to (including shell scripts that use wget or similar).  We think this
may have the advantage over other alternatives (such as DBUS or
embedded extensibility languages) of being very simple and not
requiring the user to learn any new technologies (just HTTP and, well,
some basic familiarity with the semantics of the GTK signals/widget
types, though that should be somewhat obvious from the HTML
interface).

Note that the overhead in terms of both memory and performance of
having a web server included in *every* process that runs a GTK
application would be negligible.

In our vision, gtkwebd would be automatically included in GTK+ and
GTK+ apps would get an embedded web server by default (though some
things that would be required are still missing, such as a user-wide
registry of <application-name, process, port> tuples and an
authorization model).

Our code is currently a prototype and there are things we haven't got
around to implementing yet.  Currently you have to use it carefully or
you may crash your process, we don't have exahustive tests, and we
don't have an authorization model, but we expect to change that.

Thoughts?

Alejo.
http://azul.freaks-unidos.net/


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]