adbcBridge turns legacy database connectivity layers into Arrow-native ADBC drivers. ODBC is the first bridge; the name leaves room for the others.
| Milestone | Status |
|---|---|
| Query, types, NULLs, Unicode, parameters, bulk ingest, metadata, errors | done |
Compatibility matrix: 53 databases verified on Linux by one workload (docs/COMPATIBILITY.md) |
done |
Clients measured against all 53: Python, Rust, Go, Java, C# (bench/LANGUAGE_BENCHMARKS.md — 261 of 265 Linux cells); R smoke-tested |
done |
| Array-bound and multi-row bulk ingest, probed per driver, default on | done |
Plug-and-play install: install.sh (Linux, macOS), driver manifest and driver="odbc" by name (Linux, macOS, Windows — there cmake --install writes the manifest) |
done |
macOS verified on a real machine: SQLite, PostgreSQL 15, SQL Server 2022 (bench/BENCHMARKS-macos.md) |
done |
Windows: first build 2026-08-24 (ten defects across driver, tests and harnesses, three of them the ANSI code page in three disguises); compat campaign on an 8 GB laptop, then the full 46-entry re-measure on a 32 GB machine on 2026-08-25 (45 pass; MySQL Connector/ODBC 26.7.1 retires the astral class) — bench/BENCHMARKS-windows.md |
done |
macOS: 53 of 53 results (45 pass, 8 driver/server unavailable); a bridge built against iODBC is a supported configuration for vendor drivers that only ship iODBC builds (MySQL Connector/ODBC for macOS) — three width bugs found and fixed on the way (docs/TROUBLESHOOTING.md) |
done |
2026-09-03 batch: SingleStore, SAP HANA Express, Exasol, Altibase, Kinetica, Actian Ingres and IBM Db2 for i (PUB400.COM) verified on Linux — 53 entries; macOS and Windows cells measured the same week (45 and 48 pass; every other cell names its reason in docs/COMPATIBILITY.md) |
done |
Windows: per-connection narrow-text route for ANSI-only drivers whose narrow path is UTF-8 (narrow_sql + narrow_params + wchar_as_utf8, keyed on the driver, no global state) — Apache Ignite passes on Windows, measured on the second Windows machine |
done |
Windows, to verify on the next Windows session (reported by the second Windows campaign, not reproduced on a machine still available): (1) whether cmake --install under MSVC can write the manifest key windows_amd64_mingw (CMake's MINGW is only set for a GNU toolchain; the campaign's own build log recorded windows_amd64); (2) the Go binding's SQLite test leaves the database file open after Close so t.TempDir() cleanup fails — the drivermgr Close calls AdbcConnectionRelease/AdbcDatabaseRelease synchronously, so the open handle is either a driver-side pool or a missing release in the test's reader path |
next |
Connection-level reader options (adbc.odbc.batch_size, sqllen_32bit) set before AdbcConnectionInit are discarded — OdbcConnectionInit copies the database defaults over them; re-apply the recorded pre-options after the copy |
next |
Windows: prefetch pipeline and parallel ingest on Win32 threads (SRWLOCK, CONDITION_VARIABLE, _beginthreadex), the same options and behaviour as Linux and macOS |
done (0.1.4) |
Driver bootstrap: install.sh --drivers installs the open-licence ODBC drivers a first run needs (sqliteodbc, psqlodbc, MariaDB Connector/ODBC through apt, dnf or Homebrew; clickhouse-odbc from its pinned, checksummed release tarball) and prints what landed where with a connection string each; vendor drivers (Oracle, Db2, SQL Server, Snowflake…) stay the user's download — their licences do not allow redistribution, and Windows already ships the SQL Server driver |
done (0.1.4), Linux and macOS |
| Driver bootstrap on Windows: a PowerShell counterpart that runs the vendors' MSI installers (psqlodbc, sqliteodbc, MariaDB Connector/ODBC, clickhouse-odbc) | next |
ADBC Driver Foundry validation suite (tests/validation/RESULTS.md): PostgreSQL 293/327 pass with the other 34 declared backend limitations (2026-09-15; was 265 on 2026-09-06), SQLite 212/327 with the remainder being precision SQLiteODBC does not report; baseline findings D1–D9, D11, D14 and the PostgreSQL findings P1–P4 (TIME/TIMESTAMP precision and zone fidelity), P7 (db_schema option) and P8 (schema catalog fill) fixed; tests/test_postgres.py pins them in CI |
done — released in 0.1.2 (2026-09-15) |
Trust artefacts: security policy with private vulnerability reporting and a stated support window (SECURITY.md); Dependabot on every manifest; SHA256SUMS and its signature (SHA256SUMS.asc) on v0.1.0; every later release signed, attested (GitHub build provenance, gh attestation verify) and shipped with an SPDX SBOM by the release workflow |
done |
| Foundry listing (adbc-drivers.org) | next |
Release workflow: Linux x86_64/aarch64 (manylinux_2_28), macOS arm64 and Windows x64 libraries + Python wheels built on tag, attached to the GitHub Release (.github/workflows/release.yml) |
done — v0.1.0 on 2026-08-25: 4 libraries, 4 wheels + sdist, crate, nupkg, jar |
PyPI via trusted publishing (.github/workflows/publish-pypi.yml, dispatched by hand with the tag once the Release workflow has published it); NuGet the same way (publish-nuget.yml); crates.io from a checkout of the tag |
done (0.1.0 on PyPI, crates.io and nuget.org, 2026-08-26) |
Language packages: Python wheel (python/), Rust crate (rust/), NuGet (csharp/), Maven (java/), Go module (go/) — built and attached to every release (the crate tested there, the others by their own suites under tests/); PyPI, crates.io, nuget.org and Maven Central (org.adbcbridge:adbcbridge, published 2026-09-04 through the Central Portal, java/PUBLISHING.md) carry 0.1.0 |
done |
| Databases that need vendor downloads behind a login: Teradata, Snowflake, Databricks/Spark (Simba), Hive | help wanted |
Same idea for the JDBC universe: load a JVM in-process (JNI), drive any JDBC driver, and return Arrow batches through the ADBC ABI — so Python, R, Go, Rust and C# can use JDBC-only drivers without a Java application. Apache Arrow already has a Java-side JDBC adapter; this is the C-side one.
Windows-only; covers the few remaining sources that have OLE DB providers but no ODBC driver.
- Replacing native ADBC drivers where they exist (PostgreSQL, Snowflake, BigQuery, …): those will always be faster. adbcBridge is for everything else, and for the long tail of enterprise databases that will never get a native driver.