As Pavel Cisar promised at Firebird Conference in Berlin, the Firebird has brand
new DB API 2.0 driver for Python. It’s part of modernization campaign
that shakes off the legacy that goes back to KInterbasDB and Firebird 2.0.
Please note, that his new driver requires Firebird 3+ and Python 3.8+.
This “high” base line was chosen deliberately, to use all new features
available from latest Firebird & Python releases without constraints and
limits that backward compatibility would require. Internally, the driver
uses new client API based on interfaces introduced by Firebird 3. This
new API has many limits raised (like statement sizes, blob sizes etc.)
or completely lifted (like number of databases participating in
distributed transaction), and provides access to new Firebird features
(like scrollable cursors).
The initial release (v0.5.0) supports all key driver features you know
from FDB (passes all tests for FDB features), with next exceptions:
Missing parts:
– distributed transactions (will appear in next version)
– FDB extensions like schema, monitoring tables and log parsers. These
modules will be developer later, and released as separate package.
– documentation
New features in comparison to FDB:
– scrollable cursors
– type hints everywhere
– new FB client API instead old one
– enhanced Enums and Flags classes instead isc_* constants
– better and more rich support for Firebird services
The driver has also much cleaner structure and namespaces, and less core
code than FDB, and although it was not measured yet, it should also
perform better. However, the driver API is not 100% backward compatible
(with FDB).
Right now, the new driver is available only from project’s GitHib at
https://github.com/FirebirdSQL/python3-driver