Toolserver Framework for Python

a picture of myself

Münsterland.org

The Toolserver Framework for Python is a framework for simple building of webservices. This is not Twisted - that one is much larger and much richer in features. If you need a full fledged webservice or internet protocol platform, you better go with Twisted. But if you need a lean and mean webservice machine, the Toolserver Framework for Python might be the right tool for the job.

The Toolserver Framework for Python (TooFPy from now on) is actually based on much what I learned when writing the Python Desktop Server. So it is no wonder that it uses Medusa, too. The only other dependency is SOAPpy (and PyXML - but you should have that running anyway).

The main point in creating this framework was the desire to combine the high performance static content delivery of Medusa with some multithreading engine to integrate dynamic tools. The result is a web server where dynamic tools can be freely mixed with static content. The static content is delivered by Medusa without much hassle - it goes out as fast as it can. The dynamic tools are handled by dynamically assigned worker threads. The threads are managed much like the processes in Apache: you define how much threads should be free and how much to start when the number of free threads falls below the treshold and the server does it's magic. Add to this a very easy way to create webservices by just exporting tool methods either via XML-RPC, SOAP or by building wrappers to construct REST-style APIs based on your tools methods. Other tools are linda-style thread communication and tools that are dynamically instantiated based on the namespace you use. Just dig through the source - it's fascinating what one can pack into roundabout 5000-and-something lines of code Winky.

If you want to install it, just download the latest development snapshot or the last release. There is a development changelog and a release changelog, too.

To install this package under Debian, you just need to do a few small things and can use the standard apt-get tools. You have to use a debian stable, though, as the packages are not available for newer distributions (or older ones).

The first thing is to add the following line to your /etc/apt/sources.list:

deb http://simon.bofh.ms/~gb/debian/ ./

Now you just need to run the following two commands:

apt-get update
apt-get install toolserver

The system should pull in several python2.2 packages. Most packages are just backports of standard debian unstable packages.

If you want to use the latest SVN version of the Toolserver Framework For Python, you can get it with the following repository entry:

deb http://simon.bofh.ms/~gb/debian-dev ./

Please keep in mind that the SVN snapshots are created hourly by a cronjob, so they might break, might contain bugs or bad code. They might work, too Winky

There is a public SVN repository for TooFPy available. You can visit it's webinterface or use anonymous SVN to do a checkout:

svn co https://simon.bofh.ms/toofpy/trunk

Over time there will be some documentations here. For now there are the following articles:

last change 2005-08-02 22:52:16

This is the Python Desktop Server weblog.


(Donations will be used by the author to buy stuff, fullfill selfish wishes or do other silly recreational things. You have been warned.).
The PyDS is
OSI Certified Open Source Software

Python Powered

XML-Image

© 2007, Georg Bauer