[Twisted-Python] Re: In Defense of Taps

justin at iago.org justin at iago.org
Wed Feb 12 14:41:00 EST 2003

Moshe Zadka <m at moshez.org> writes:

> I encourage the "newbies" on the list to speak up: what are *you* planning
> to do with Twisted

Sure.  I'm not a programming newbie, or a Python newbie, but I am
certainly a Twisted newbie.

I wasn't going to post until I got a better handle on things via the
documentation and had more specific needs, but since you're asking...

First I should say that what drew me to the Twisted project in the
first place was not the networking framework; while it looks very
capable in that regard, I have written select- or poll-based
asynchronous apps before so I wasn't actively looking for anything to
help with that.  It was actually the conch module that drew me in at
first, as a Python library implementing the SSH protocol is very
potentially valuable to me.  Before I get to my general Twisted
thoughts, I'll ask a couple of conch questions:

 Is there any way, when using it as a client, to get it to use an
 existing ssh agent?  An ssh client is pretty much useless to me
 without this, so I may have to end up adding this functionality myself.

 Is there an example out there of a basically functioning SSH server
 using conch that will accept connections and authorize them based on
 public keys (not passwords)?  The only documentation or example usage
 I could find for conch is doc/examples/sshsimpleclient.py

 (Passwords bad; Passphrased public keys and agents good)

Setting that aside, I'll explain my first intended project with
Twisted.  It seems reasonably well suited to this use in general, but
as I've only read the intro docs I'm not yet sure of the best way to
proceed in The Twisted Way.

I need to write a fairly smart network proxy application.  Users will
connect via one protocol, be authenticated and authorized (to a
separate service, by a means I already have existent.  I don't need
Twisted's help here), then the proxy will act as a client to another
server and transparently connect the end-user to the other server as
though the middle step had never occurred.  It seems that the Factory
attached to the Protocols for which I am a server will also in itself
have to be a client of another Protocol.  I don't yet have big
questions here, as I haven't tried to make it work yet, but if someone
wants to throw me some useful advice wrt the best way to fit into the
Twisted shape of things I won't complain.

> which documents would help you with that.

As I said, I'm not yet honestly sure.  I have some feeling that the
docs are lacking in some way, but I don't have anything more specific
or any more justification until I beat against it personally some more.

I'll definitely let you all know as I find things that I think are lacking.



More information about the Twisted-Python mailing list