Psycopg is written mostly in C and wraps the libpq library with the result of being both fast and secure.
- Supports Python versions from 2.5 to 3.3 (Python 2.4 supported in Psycopg 2.4.x)
- Supports PostgreSQL versions from 7.4 to 9.2
- Fully compliant implementation of the Python DB API specification for database adapters
- Thread-safe: threads can use different connections or share the same connection
- Asynchronous nonblocking I/O, also integrated with coroutine-based libraries (gevent, Eventlet, uGreen)
- Adaptation of many Python objects to database type: tuples to records, lists to array, dictionaries to hstore
- Extendible with new adapters to convert Python objects to SQL syntax and typecasters to convert PostgreSQL types back into Python objects
- Server-side cursors
- COPY support
- Large objects support
- Can send and receive asynchronous notification
- Support for two-phase commit