Client Libraries¶
ADBC client libraries let you connect to databases and execute queries from your language of choice. Because most ADBC drivers expose the same standard C ABI, a single client library can generally use drivers written in any language through the same client API.
Note
On this page we use the terms client library and driver manager interchangeably. More precisely, the driver manager is the part of a client library that dynamically loads ADBC driver shared libraries and forwards your calls to them; the client library wraps that machinery in an API that feels idiomatic in your language.
The package names are, unfortunately, not consistent about this. Some are
named for the driver manager (Python’s adbc-driver-manager, R’s
adbcdrivermanager), while others are named for ADBC itself (C#’s
Apache.Arrow.Adbc.Client, Ruby’s red-adbc). They all give you the
same thing: a way to load drivers and talk to databases from your language.
Packages¶
The client library package for each language:
Language |
Package Manager |
Package |
Documentation |
|---|---|---|---|
Python |
pip / conda |
|
|
C/C++ |
various |
See quickstart |
|
C# |
dotnet |
|
|
Go |
go |
|
|
Java |
Maven |
|
|
JavaScript / TypeScript |
npm |
|
|
R |
CRAN / conda |
|
|
Ruby |
bundler |
|
|
Rust |
cargo |
|
Using a Client Library¶
Client libraries provide a language-native interface on top of the ADBC API.
They handle loading drivers, managing connections, and converting results into idiomatic types for each language.
For example, Python exposes a DBAPI 2.0 (PEP 249)-style interface, Go uses database/sql, and R uses DBI.
A client library on its own can’t talk to a database—it also needs a driver for the database you want to connect to. The client library loads the driver at runtime, so you install the client library once and then add a driver for each database you use. See Drivers for the full list of available drivers and how to install them.
You may not need to use a client library directly at all: many higher-level tools, such as pandas and Polars, integrate with ADBC and use it under the hood. See Tools & Integrations for more.
More Information¶
ADBC Quickstarts — simple, runnable examples for getting started in each of these languages, across a range of databases