Getting Started#
Installation#
Pip#
The easiest way to install ConnectorX is using pip, with the following command:
pip install connectorx
Databricks containers#
On databricksruntime/minimal:16.4-LTS, some Linux wheels abort during
import connectorx with:
crypto/fips/fips.c:154: OpenSSL internal error: FATAL FIPS SELFTEST FAILURE
This was reproduced with the Linux x86_64 wheels for 0.4.3 and 0.4.6a1,
using Python 3.12.11. Those wheels bundle a distribution-specific OpenSSL
1.1 library through Kerberos/GSSAPI. Its initializer aborts even with the
container’s inherited OPENSSL_FORCE_FIPS_MODE=0. This happens before a
database connection; changing PostgreSQL connection options will not fix it.
The Linux release build now builds MIT Kerberos against OpenSSL 3 before packaging the wheel. GSSAPI remains enabled, and ConnectorX does not change the application’s OpenSSL environment or host FIPS settings. This is an import-compatibility fix, not a claim of FIPS-compliant or certified cryptographic operation.
These Linux wheels retain the manylinux Kerberos plugin directories
(/usr/lib64/krb5/plugins and /usr/lib64/gss), rather than looking under
the build-only prefix. Existing plugin_base_dir overrides and relative
plugin registrations remain supported. Plugins are not bundled; applications
using them must still supply compatible plugins and their dependencies.
To check a candidate Python 3.12 Linux x86_64 wheel on a machine with Bash and Docker’s Linux engine:
bash scripts/check-databricks-wheel.sh path/to/connectorx-wheel.whl
The check uses the image digest from the original report, installs the supplied
wheel without querying PyPI, and checks repeated imports and both import orders
with Python’s ssl module in fresh processes. It leaves inherited crypto
settings unchanged. The release workflow can also be run manually to build
and check a candidate Linux x86_64/Python 3.12 wheel without publishing it.
Do not assume an older published wheel contains this build change.
Build from source code#
Step 0: Install tools.
Step 1: Fresh clone of source.
git clone https://github.com/sfu-db/connector-x.git
Step 2: Install and switch to the correct rust version (please refer this file and search for
rustfor the latest using version).
rustup install {version}
rustup override set {version}
Step 3: Install system dependencies. Please refer to release.yml for dependencies needed for different os.
Step 4: Install python dependencies.
just bootstrap-python
Step 5: Build wheel.
just build-python-wheel
NOTES:
OPENSSL_NO_VENDOR=1might required to compile for windows users.Dynamic library is required for the python installation. (e.g. If you are using
pyenv, use commandPYTHON_CONFIGURE_OPTS=“--enable-shared” pyenv install {version}to install python since dylib is not enabled by default.)