Apache Arrow ADBC 20 (Libraries) Release


Published 12 Sep 2025
By The Apache Arrow PMC (pmc)

The Apache Arrow team is pleased to announce the version 20 release of the Apache Arrow ADBC libraries. This release includes 44 resolved issues from 29 distinct contributors.

This is a release of the libraries, which are at version 20. The API specification is versioned separately and is at version 1.1.0.

The subcomponents are versioned independently:

  • C/C++/GLib/Go/Python/Ruby: 1.8.0
  • C#: 0.20.0
  • Java: 0.20.0
  • R: 0.20.0
  • Rust: 0.20.0

The release notes below are not exhaustive and only expose selected highlights of the release. Many other bugfixes and improvements have been made: we refer you to the complete changelog.

Release Highlights

Driver managers now support loading driver manifests. To learn more about this feature, please see the documentation.

The Rust crates were reorganized. This is a breaking change. Now, FFI-related code is part of adbc_ffi and the driver manager is part of adbc_driver_manager. Previously these were features of a single crate adbc_core, which now only contains API definitions (#3381, #3197). Also, some enums are no longer marked as #[non_exhaustive] (#3245).

The Java JNI bindings support a few more features (#3373, #3372, #3370, #3348).

The BigQuery driver properly uses microsecond timestamps (#3364), has an improved error message if your user account lacks the proper permissions (#3297), properly handles nested data (#3240), and supports service account impersonation (#3174). The C# Databricks/HiveServer2 Thrift-protocol drivers continues to expand their featureset, such as support for cancelling statements, token exchange, and better tracing (#3304, #3302, #3301, #3224, #3218, #3192, #3177, #3137, #3127). The PostgreSQL driver will properly bind arrow.json extension arrays as JSON parameters (#3333). The Snowflake driver supports more authentication methods (#3366). The SQLite driver can bind parameters by name instead of position (#3362).

The C# library has been upgraded to .NET 8 (#3120).

GLib has more bindings to ADBC functions (#3118).

The Go library has some experimental helpers to simplify getting driver metadata (#3239) and ingesting Arrow data (#3150). The database/sql adapter handles time.Time values for bind parameters now (#3109). Drivers will forward SQLSTATE and other error metadata across the FFI boundary (#2801).

Contributors

$ git shortlog --perl-regexp --author='^((?!dependabot\[bot\]).*)$' -sn apache-arrow-adbc-19..apache-arrow-adbc-20
    28	David Li
    14	Todd Meng
    13	Bryce Mecum
    13	eitsupi
    12	Jacky Hu
    12	Matt Topol
     8	Bruce Irschick
     7	Matthijs Brobbel
     6	davidhcoe
     5	eric-wang-1990
     4	Alex Guo
     3	Daijiro Fukuda
     3	Felipe Oliveira Carvalho
     3	Sutou Kouhei
     2	Curt Hagenlocher
     2	Jade Wang
     2	Mandukhai Alimaa
     2	amangoyal
     1	Arseny Tsypushkin
     1	Dewey Dunnington
     1	Even Rouault
     1	Ian Cook
     1	Jordan E
     1	Lucas Valente
     1	Mila Page
     1	Ryan Syed
     1	Sudhir Reddy Emmadi
     1	Xuliang (Harry) Sun
     1	Yu Ishikawa

Roadmap

A Go-based driver for Databricks is in the works from a contributor.

Getting Involved

We welcome questions and contributions from all interested. Issues can be filed on GitHub, and questions can be directed to GitHub or the Arrow mailing lists.