[Twisted-Python] Re: In Defense of Taps
screwtape at froup.com
screwtape at froup.com
Wed Feb 12 20:07:13 EST 2003
On Thu, Feb 13, 2003 at 12:38:04AM +0100, Federico Di Gregorio wrote:
> i started by ignoring *everything* with the word 'tap' in it, mainly
> because i found the terms 'tap' and 'http server' togheter two times and
> was looking for something different. i also completely ignored coil.
It occurs to me that Twisted is a little daunting because it's
presented as a single. monolithic package. I think it would be helpful
if, at least in the documentation, there was more of a
provides/requires structure, or at least a concept map.
The core of Twisted is t.internet and t.python.
t.protocols requires the Twisted core, and provides simple
accesss to a variety of Internet protocols.
t.conch requires the core, and implements the the SSH
standard. It provides a Python-based equivalent to the OpenSSH
tools, and (for example) allows Python-based programs to
create and use SSH tunnels (or whatever else it does)
t.enterprise requires the Twisted core, and provides a way for
Python programs to access databases in a Twisted-style way.
t.im requires the Twisted core and t.protocols, and provides
an a multi-protocol instant-messaging client for the end-user.
...and so on and so forth.
Basically, for each module in Twisted, the Twisted newbie can see if
that module is likely to be (a) a framework they can use to do what
they want, (b) an application that does what they want, (c) a suitable
source of sample code.
Note that a conceptual module might not be identical to the current
module organisation - t.e.dbcred requires t.enterprise and t.cred but
doesn't provide any new abilities, so I'd consider it a module of its
Say I want to write an IRC bot - it needs to be able to talk to an IRC
server and store information. I notice that t.protocols has an IRC
protocol, and t.enterprise has database access, so I can probably
cobble together something using only those two modules. I see that
t.im is an application rather than a framework, so I won't try and
build on that, but I probably *will* mine it for sample code of how to
talk to the IRC module.
As a side note, I think Twisted's applications should be as thin as
possible - if the application involves any abstraction at all (hello,
twisted.im!) that abstraction should be a framework, and the
application should just use the framework.
...who nevertheless is not volunteering. Yet. :)
| Screwtape | Reply-To: munged on Usenet |________ ______ ____ __ _ _ _
| "A glance, a stance, a broken romance; a disconnected telephone..." -- DEVO
More information about the Twisted-Python