Drivers¶
An ADBC driver lets you connect to a database, run queries, and exchange data in Arrow format.
Available Drivers¶
ADBC drivers are typically built, distributed, and used as shared libraries
(.so, .dll, or .dylib files). One shared library works from any
language. An application uses an
ADBC client library to dynamically load the driver
at runtime, no matter which language the driver was written in. Every
driver in the table below is packaged this way.
Driver for (click for docs) |
Slug [1] |
Maintainer [2] |
Repo |
|---|---|---|---|
|
Foundry |
||
|
Vendor |
||
|
Foundry |
||
|
Foundry |
||
|
Vendor |
||
|
Vendor |
||
|
ASF |
||
|
Foundry |
||
|
Foundry |
||
|
ASF |
||
|
Foundry |
||
|
Foundry |
||
|
Vendor |
||
|
Foundry |
||
|
Foundry |
||
|
ASF |
||
|
Foundry |
Installing Drivers¶
Pre-built binaries for the drivers in the table above are available from the ADBC driver registry hosted by Columnar, a company active in ADBC driver development. Binaries are available for Windows (amd64), macOS (arm64), and Linux (amd64 and arm64), and are code-signed and notarized by Columnar.
Users and applications can download a driver from the registry manually, or with the dbc command-line tool. With dbc installed, install any driver by its slug:
dbc install <slug> # e.g. dbc install postgresql
dbc installs both the driver’s shared library and its driver manifest to a location where an ADBC client library can find the driver by its slug.
If you download a driver from the registry manually instead, you’ll need to install the driver shared library file to the correct location yourself and create a driver manifest for it, or else pass the full path to the shared library in your application code, plus the entrypoint if the driver does not use the default entrypoint name. See ADBC Driver Manager and Manifests for details.
Some drivers are also published to language-specific package registries. Apache-maintained drivers are on PyPI, conda-forge, CRAN, and more; some vendor drivers list their own packages in each driver’s documentation, linked from its name in the table above.
Note
The ADBC driver registry and the dbc command-line tool for installing drivers from it are provided by Columnar, and are maintained independently of the Apache Arrow project.
Language-Specific Drivers¶
Some drivers are built and packaged for a specific language or runtime rather than as dynamically loadable shared libraries. They run directly on that runtime, without crossing an FFI / ABI boundary, and are distributed through its package registry. They can be used from any language that targets that runtime. For example, the .NET drivers work from C#, F#, and other .NET languages, and the Java driver works from Java, Kotlin, Scala, and other JVM languages.
C#/.NET¶
Distributed as .NET packages on NuGet, for use from C#/.NET applications:
Driver for (click for README) |
NuGet package |
Maintainer |
|---|---|---|
ASF |
||
ASF |
||
ASF |
||
ASF |
Java/JVM¶
Distributed as Maven packages, for use from Java applications:
Driver for (click for docs) |
Maven package |
Maintainer |
|---|---|---|
ASF |
||
ASF |
Who Maintains These Drivers?¶
The ADBC project focuses primarily on the ADBC standard and client libraries, not on developing drivers and shipping driver binaries. The Maintainer column in the tables above identifies who maintains each driver:
- ASF
A few drivers are maintained within the Apache Arrow project under Apache Software Foundation (ASF) governance, mostly for historical reasons.
- Foundry
Most drivers are maintained within the ADBC Driver Foundry, a community-governed project focused on growing the ADBC ecosystem.
- Vendor
Some drivers are maintained in independent repositories controlled by database vendors.
Have a Driver to Add?¶
If you’ve developed a high-quality ADBC driver, made it freely available for public use under a permissive license, and would like it listed here, open an issue on the Apache Arrow ADBC repository with the details (name, database, repository URL, package names) and we’ll help get it added.
Interested in developing a new driver? See Writing New Drivers.
More Information¶
Client Libraries — the libraries that load and use drivers from your language of choice
Tools & Integrations — tools and libraries that work with ADBC
Connection Profiles — reusable, shareable connection configuration
ADBC Quickstarts — simple, runnable examples for getting started with many of these drivers