This is a minor release bringing in minor new features and a few bug fixes, without any breaking changes.
Most changes are inherited by internally upgrading to version
Sender(..., tls=True)now also uses the OS-provided certificate store. The tls argument can now also be set to
tls='os_roots'(to only use the OS-provided certs) or
tls='webpki_roots'(to only use the certs provided by the
webpki-roots, i.e. the old behaviour prior to this release). The new default behaviour for
tls=Trueis equivalent to setting
Upgraded dependencies to newer library versions. This also includes the latest webpki-roots crate providing updated TLS CA certificate roots.
Various example code and documentation improvements.
Fixed a bug where timestamp columns could not accept values before Jan 1st 1970 UTC.
TCP connections now enable
SO_KEEPALIVE: This should ensure that connections don’t drop after a period of inactivity.
High-performance ingestion of Pandas dataframes into QuestDB via ILP. We now support most Pandas column types. The logic is implemented in native code and is orders of magnitude faster than iterating the dataframe in Python and calling the
Buffercan be written from Pandas at hundreds of MiB/s per CPU core. The new
dataframe()method continues working with the
auto_flushfeature. See API documentation and examples for the new
dataframe()method available on both the
TimestampMicros.now()methods. These are the new recommended way of getting the current timestamp.
The Python GIL is now released during calls to
auto_flushis triggered. This should improve throughput when using the
Senderfrom multiple threads.
In previous releases the documentation for the
from_datetime()methods of the
TimestampMicrostypes recommended calling
datetime.datetime.utcnow()to get the current timestamp. This is incorrect as it will (confusinly) return object with the local timezone instead of UTC. This documentation has been corrected and now recommends calling
datetime.datetime.now(tz=datetime.timezone.utc)or (more efficiently) the new
Support for Python 3.11.
Updated to version 2.1.1 of the
SO_REUSEADDRon outbound socket. This is helpful to users with large number of connections who previously ran out of outbound network ports.
As a matter of convenience, the
Buffer.rowmethod can now take
Nonecolumn values. This has the same semantics as skipping the column altogether. Closes #3.
First stable release.
Insert data into QuestDB via ILP.
Sender and Buffer APIs.
Authentication and TLS support.
Auto-flushing of buffers.
Initial set of features to connect to the database.
First release where
pip install questdbshould work.
First release on PyPI.