[Twisted-Python] newpb 0.0.1 is released!

Brian Warner warner at lothar.com
Mon May 8 04:54:32 EDT 2006


I'm pleased to announce that the first alpha release of "newpb", a ground-up
rewrite of twisted's native RPC protocol, is now available.

Years in the making, newpb offers a variety of new features, more flexible
serialization than oldpb, a better security model, and the potential (not yet
achieved) to be faster. For a larger list of new features, take a look at the
newpb wiki page[1].

The release itself is currently available from my web directory[2]. At some
point in the near future, it should also be available from the Twisted
downloads directory, and from the download mirror sites as well. To use the
release you will have to install it with the usual 'setup.py install'
incantation: it adds a 'twisted.pb' module to your regular twisted
installation, and as such it won't work if you just add the unpacked
directory to your PYTHONPATH.

Please note that this is an ALPHA release. Think of it as a technology
preview. The wire protocol is *not* stable yet, which means that a
newpb-0.0.1 client is unlikely to be able to talk to a newpb-0.0.2 server,
etc. Don't deploy it anywhere unless you will be able to upgrade both ends of
the wire in the future. There are likely to be significant bugs (including
security holes) present, and some major design decisions still remain to be
settled. For production systems, please continue to use oldpb (aka
twisted.spread, as distributed in TwistedCore) for the forseable future.

That said, it's high time that people get a chance to play with this code. An
earlier version of it leaked into the TwistedCore-2.2.0 release before anyone
could catch it (but truth be told the code there is almost identical to this
0.0.1 release), but apart from that it has been languishing in SVN[3] for far
too long. I think I've been working on this intermittently for three years,
hopefully with other people involved we can get this thing rolling and usable
in a non-bounded amount of time.

The top-level "Getting Started" documentation, with examples, is in
doc/pb/using-pb.xhtml, of which a lore-rendered version is in my newpb
webspace[4]. There are a number of protocol specification documents in there
too. There are also lists of outstanding jobs and open design questions in
doc/pb/*. The 8.5kloc of code lives in twisted/pb/*, along with an additional
4.7kloc in the 229 unit tests.

Naming: the name is still in flux. We've been using "newpb" as a working
title, to distinguish it from "oldpb" (which is the twisted.spread that's
been shipping in TwistedCore since forever). "pb2" is another working title.
It will probably have some new name in the future, hopefully one which makes
its purpose more immediately obvious. The point right now is to work on the
functionality, not the name. In the long run this is intended to replace
oldpb/twisted.spread, but not this month. So don't worry about the name too
much for now.

When filing bugs and tickets, if you see a 'pb2' component in Trac, please
use that. Otherwise please use the 'pb' component and include "newpb" or
"pb2" in the title. Discussions here on the twisted-python mailing list or in
the #twisted IRC channel on freenode.net are also appropriate.


Have an Alice, Bob, and Carol-ific day,
 -Brian



[1]: http://twistedmatrix.com/trac/wiki/NewPB
[2]: http://twistedmatrix.com/~warner/newpb/TwistedPb2-0.0.1.tar.bz2
[3]: svn://svn.twistedmatrix.com/svn/Twisted/tags/releases/pb2/0.0.1
[4]: http://twistedmatrix.com/~warner/newpb/





More information about the Twisted-Python mailing list