DuckDB Support#

Available for: C/C++, GLib/Ruby, Go, Python

DuckDB provides ADBC support since version 0.8.0.


DuckDB is not part of the Apache Arrow project and is developed separately.


See the DuckDB documentation.


ADBC support in DuckDB requires the driver manager.

#include "adbc.h"

// Ignoring error handling
struct AdbcDatabase database;
AdbcDatabaseNew(&database, nullptr);
AdbcDatabaseSetOption(&database, "driver", "PATH/TO/", nullptr);
AdbcDatabaseSetOption(&database, "entrypoint", "duckdb_adbc_init", nullptr);
AdbcDatabaseInit(&database, nullptr);

You must have on your LD_LIBRARY_PATH, or in the same directory as the executable when you run this. This requires CGO and loads the DuckDB driver.

import (


func main() {
   var drv drivermgr.Driver
   db, err := drv.NewDatabase(map[string]string{
      "driver": "",
      "entrypoint": "duckdb_adbc_init",
   if err != nil {
      // handle error

   cnxn, err := db.Open(context.Background())
   if err != nil {
      // handle error
   defer cnxn.Close()

Supported Features#

ADBC support in DuckDB is still in progress. See duckdb/duckdb#7141 for details.