Skip to content
Twisted wrapper for asynchronous PostgreSQL connections
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc Clean up all flake8 errors. No code changes. May 4, 2015
test Use list comprehension instead of the builtin map() function Jan 27, 2016
LICENSE Initial commit May 5, 2010
NEWS Add info about Python 3 compatibility, run Travis tests with Py3k Jan 27, 2016
setup.cfg Initial commit May 5, 2010


This is txpostgres is a library for accessing a PostgreSQL database from the Twisted framework. It builds upon asynchronous features of the Psycopg database library, which in turn exposes the asynchronous features of libpq, the PostgreSQL C library.

It requires a version of Psycopg that includes support for asynchronous connections (versions 2.2.0 and later) and a reasonably recent Twisted (it has been tested with Twisted 10.2 onward). Alternatively, psycopg2cffi or psycopg2-ctypes can be used in lieu of Psycopg.

txpostgres tries to present an interface that will be familiar to users of both Twisted and Psycopg. It features a Cursor wrapper class that mimics the interface of a Psycopg cursor but returns Deferred objects. It also provides a Connection class that is meant to be a drop-in replacement for Twisted's adbapi.Connection with some small differences regarding connection establishing.

The main advantage of txpostgres over Twisted's built-in database support is non-blocking connection building and complete lack of thread usage.

It runs on Python 2.6, 2.7, 3.4, 3.5 and PyPy.

If you got txpostgres as a source tarball, you can run the automated test suite and install the library with:

tar xjf txpostgres-x.x.x.tar.bz2
cd txpostgres-x.x.x
trial test
sudo python install

Alternatively, just install it from PyPI:

pip install txpostgres

The library is distributed under the MIT License, see the LICENSE file for details. You can contact the author, Jan Urbański, at Feel free to download the source, file bugs in the issue tracker and consult the documentation

You can’t perform that action at this time.