Introducing dbc
TL;DR
dbc is the easiest way to install and manage ADBC drivers. Install prebuilt drivers from Columnar's public driver registry with a single command and be up and running with ADBC in seconds. Get started at columnar.tech/dbc.
At Columnar, we build tools that make data access fast, easy, and secure. The core technology we're building on is ADBC, the emerging standard for data connectivity powered by Apache Arrow. ADBC was born from a simple observation: today's dominant connectivity APIs, like ODBC and JDBC, were built for a different era. As network speeds have increased and columnar formats have come to dominate analytics, these 1990s-era standards have become the bottleneck. ADBC was created to fix that.
But while ADBC makes data access faster, it did not initially make the developer experience easier. Installing and managing drivers was still a haphazard process filled with stumbling blocks that slowed adoption. Although ADBC is frequently more than ten times faster than ODBC or JDBC, using its drivers was not ten times easier.
Inspired by developer tools we love—especially uv—we set out to change that. Today, we're thrilled to announce the release of dbc, a command-line tool that installs drivers in seconds and makes them automatically discoverable by ADBC driver managers.
Here's what dbc looks like in practice.
Installing dbc
Start by installing dbc:
On Linux and macOS:
curl -LsSf https://dbc.columnar.tech/install.sh | sh
On Windows (PowerShell):
powershell -c "irm https://dbc.columnar.tech/install.ps1 | iex"
Alternative installation methods include pipx, uv, Homebrew, and winget. See columnar.tech/dbc for details.
Using dbc to install ADBC drivers
After dbc is installed, use it to install a driver. For example, to install the PostgreSQL driver:
dbc install postgresql
By default, dbc installs ADBC drivers into your operating system's user-level configuration directory (and adds registry entries in HKCU on Windows). If you're running inside a Python virtual environment or Conda environment, dbc installs into that environment instead. You can also install drivers system-wide, or to a custom path by setting an environment variable. All of these locations align with where ADBC driver managers already search for drivers—so once installed, things "just work."
Behind the scenes, Columnar operates a public driver registry hosting prebuilt, signed ADBC drivers for all major platforms. These drivers are published as shared libraries (.so, .dylib, .dll) that can be used in any language capable of loading a dynamic library at runtime. All binaries are EV code-signed and, on macOS, notarized for friction-free loading.
To see the list of available drivers, run:
dbc search
We're launching dbc with ten drivers covering many of the most popular relational databases, query engines, and cloud data warehouses. All of these drivers are permissively licensed, so you can use and redistribute them freely.
Available drivers: BigQuery, DuckDB, Flight SQL, SQL Server, MySQL, PostgreSQL, Redshift, Snowflake, SQLite, and Trino.
Using ADBC drivers in your code or application
Once a driver is installed, loading it in your application is similarly straightforward. You'll need the ADBC driver manager installed or added to your project.
Installing the driver manager in Python:
pip install adbc-driver-manager pyarrow
For other languages: See Installing a Driver Manager in the dbc documentation.
Then load the driver manager and reference the driver by name. Here's a Python example:
from adbc_driver_manager import dbapi
con = dbapi.connect(driver="postgresql", ... )
This works because of the driver manifest mechanism introduced in ADBC 20, which enables driver discovery without hard-coded paths. For complete examples in C++, Go, Java, Python, R, and Rust, see the ADBC quickstarts.
Who is dbc for?
dbc is designed for:
- Developers on any platform who want the easiest way to start using ADBC
- Application vendors who want to let their users "bring your own drivers" (BYOD)
We hope to see more applications adopt this BYOD model. We take seriously our role in ensuring the drivers we publish are reliable, secure, and consistent across ecosystems. Each driver has a corresponding repository in the ADBC Driver Foundry where users can file issues, request changes, or contribute. Want to see a driver we don't yet offer? Join the discussion in the Foundry and help shape the roadmap.
Who is dbc not for?
dbc is not intended for:
- Developers who need to link ADBC drivers directly into their applications at build time
- Developers working in fully sandboxed environments where FFIs are disallowed
- Single-database, single-language users who may prefer the language-specific and database-specific packages distributed on PyPI, CRAN, and other registries
For those use cases, the open source ADBC ecosystem offers other supported paths. If one of these scenarios is a priority for you and you're not finding a solution, please let us know.
What's next
dbc already includes support for:
- Reproducible driver installs with driver list files (think
requirements.txt, but for ADBC drivers)
- Collaborative workflows using Git
- CI/CD-friendly installs for automated environments
dbc is released under the Apache 2.0 open source license, and we welcome issues, discussions, and contributions from the community. We have lots more planned for dbc, and we're eager to hear what's most important to you. We're excited to see what you build and how dbc helps you get there faster.
Next steps