|
| 1 | +--- |
| 2 | +layout: post |
| 3 | +title: "Apache Arrow ADBC 24 (Libraries) Release" |
| 4 | +date: "2026-07-28 00:00:00" |
| 5 | +author: pmc |
| 6 | +categories: [release] |
| 7 | +--- |
| 8 | +<!-- |
| 9 | +{% comment %} |
| 10 | +Licensed to the Apache Software Foundation (ASF) under one or more |
| 11 | +contributor license agreements. See the NOTICE file distributed with |
| 12 | +this work for additional information regarding copyright ownership. |
| 13 | +The ASF licenses this file to you under the Apache License, Version 2.0 |
| 14 | +(the "License"); you may not use this file except in compliance with |
| 15 | +the License. You may obtain a copy of the License at |
| 16 | +
|
| 17 | +http://www.apache.org/licenses/LICENSE-2.0 |
| 18 | +
|
| 19 | +Unless required by applicable law or agreed to in writing, software |
| 20 | +distributed under the License is distributed on an "AS IS" BASIS, |
| 21 | +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 22 | +See the License for the specific language governing permissions and |
| 23 | +limitations under the License. |
| 24 | +{% endcomment %} |
| 25 | +--> |
| 26 | + |
| 27 | +The Apache Arrow team is pleased to announce the version 24 release of |
| 28 | +the Apache Arrow ADBC libraries. This release includes [**57 |
| 29 | +resolved issues**][1] from [**28 distinct contributors**][2]. |
| 30 | + |
| 31 | +This is a release of the **libraries**, which are at version 24. The |
| 32 | +[**API specification**][specification] is versioned separately and is at |
| 33 | +version 1.1.0. |
| 34 | + |
| 35 | +The subcomponents are versioned independently: |
| 36 | + |
| 37 | +- C/C++/GLib/Go/Python/Ruby: 1.12.0 |
| 38 | +- C#: 0.24.0 |
| 39 | +- Java: 0.24.0 |
| 40 | +- R: 0.24.0 |
| 41 | +- Rust: 0.24.0 |
| 42 | + |
| 43 | +The release notes below are not exhaustive and only expose selected |
| 44 | +highlights of the release. Many other bugfixes and improvements have |
| 45 | +been made: we refer you to the [complete changelog][3]. |
| 46 | + |
| 47 | +## Release Highlights |
| 48 | + |
| 49 | +Note: we are planning to require C++20 starting from the next release. |
| 50 | + |
| 51 | +### Breaking/Major Changes |
| 52 | + |
| 53 | +- The documentation has been overhauled, in particular to make it clearer how |
| 54 | + to use ADBC and where to download drivers. |
| 55 | +- We have stopped development on drivers for Apache DataFusion, BigQuery, |
| 56 | + Databricks, and Snowflake. Existing packages will continue to be available, |
| 57 | + but the code has been removed and we may archive pages on PyPI and other |
| 58 | + package indices. All four of these systems now have ADBC drivers developed |
| 59 | + by the vendors themselves or other third parties; see |
| 60 | + [Drivers](https://arrow.apache.org/adbc/24/driver/index.html) in the |
| 61 | + documentation for details. |
| 62 | +- Similarly, support for Amazon Redshift in the PostgreSQL driver has been |
| 63 | + removed. This support was always experimental and incomplete, and a |
| 64 | + dedicated driver has been available from a third party. |
| 65 | +- Java API definitions were narrowed so that `close` is only declared to throw |
| 66 | + `AdbcException` as a checked |
| 67 | + exception. ([#4451](https://github.com/apache/arrow-adbc/pull/4451)) |
| 68 | +- The PostgreSQL driver now lazily initializes transactions to make it work |
| 69 | + better with connection |
| 70 | + pools. ([#4424](https://github.com/apache/arrow-adbc/pull/4424)) |
| 71 | + |
| 72 | +### Core APIs & Client Libraries |
| 73 | + |
| 74 | +C# now has a native driver manager, allowing it to load drivers, manifests, |
| 75 | +and profiles ([#4075](https://github.com/apache/arrow-adbc/pull/4075), |
| 76 | +[#4340](https://github.com/apache/arrow-adbc/pull/4340), |
| 77 | +[#4341](https://github.com/apache/arrow-adbc/pull/4341), |
| 78 | +[#4330](https://github.com/apache/arrow-adbc/pull/4330)). The core libraries |
| 79 | +are now compatible with AOT compilation, enabling drivers to be built as |
| 80 | +standalone shared libaries |
| 81 | +([#4243](https://github.com/apache/arrow-adbc/pull/4243), |
| 82 | +[#4318](https://github.com/apache/arrow-adbc/pull/4318)). |
| 83 | + |
| 84 | +The Go `database/sql` adapter now supports converting more Arrow types to Go |
| 85 | +types ([#4416](https://github.com/apache/arrow-adbc/pull/4416)). |
| 86 | + |
| 87 | +The Java core APIs now support a "fluent" style ingest API (#4466). Also, |
| 88 | +support for dynamically loading drivers for use in Java has been greatly |
| 89 | +expanded and should now support all of the ADBC APIs and features expected of |
| 90 | +a client library ([#4452](https://github.com/apache/arrow-adbc/pull/4452), |
| 91 | +[#4211](https://github.com/apache/arrow-adbc/pull/4211), |
| 92 | +[#4411](https://github.com/apache/arrow-adbc/pull/4411), |
| 93 | +[#4202](https://github.com/apache/arrow-adbc/pull/4202), |
| 94 | +[#4359](https://github.com/apache/arrow-adbc/pull/4359), |
| 95 | +[#4212](https://github.com/apache/arrow-adbc/pull/4212), |
| 96 | +[#4263](https://github.com/apache/arrow-adbc/pull/4263), |
| 97 | +[#4229](https://github.com/apache/arrow-adbc/pull/4229), |
| 98 | +[#4203](https://github.com/apache/arrow-adbc/pull/4203), |
| 99 | +[#4361](https://github.com/apache/arrow-adbc/pull/4361), |
| 100 | +[#4362](https://github.com/apache/arrow-adbc/pull/4362), |
| 101 | +[#4249](https://github.com/apache/arrow-adbc/pull/4249), |
| 102 | +[#4250](https://github.com/apache/arrow-adbc/pull/4250), |
| 103 | +[#4398](https://github.com/apache/arrow-adbc/pull/4398), |
| 104 | +[#4397](https://github.com/apache/arrow-adbc/pull/4397), |
| 105 | +[#4423](https://github.com/apache/arrow-adbc/pull/4423), |
| 106 | +[#4395](https://github.com/apache/arrow-adbc/pull/4395), |
| 107 | +[#4396](https://github.com/apache/arrow-adbc/pull/4396), |
| 108 | +[#4391](https://github.com/apache/arrow-adbc/pull/4391)). |
| 109 | + |
| 110 | +The JavaScript client library no longer requires the `driver` parameter and |
| 111 | +can infer the driver to load based on the URI, or can accept a profile |
| 112 | +([#4357](https://github.com/apache/arrow-adbc/pull/4357)). |
| 113 | + |
| 114 | +The R client library no longer requires the `driver` parameter and can infer |
| 115 | +the driver to load based on the URI, or can accept a profile |
| 116 | +([#4535](https://github.com/apache/arrow-adbc/pull/4535)). |
| 117 | + |
| 118 | +Some tweaks have been made to the Rust core APIs to better support interop |
| 119 | +with dynamically loaded drivers and make certain conventions clearer |
| 120 | +([#4427](https://github.com/apache/arrow-adbc/pull/4427), |
| 121 | +[#4510](https://github.com/apache/arrow-adbc/pull/4510), |
| 122 | +[#4350](https://github.com/apache/arrow-adbc/pull/4350), |
| 123 | +[#4141](https://github.com/apache/arrow-adbc/pull/4141), |
| 124 | +[#4181](https://github.com/apache/arrow-adbc/pull/4181), |
| 125 | +[#4473](https://github.com/apache/arrow-adbc/pull/4473), |
| 126 | +[#4469](https://github.com/apache/arrow-adbc/pull/4469)). |
| 127 | + |
| 128 | +### Drivers |
| 129 | + |
| 130 | +The Flight SQL driver now recognizes URIs with the `flightsql://` scheme |
| 131 | +([#4488](https://github.com/apache/arrow-adbc/pull/4488)). It also has more |
| 132 | +support for logging and OpenTelemetry tracing |
| 133 | +([#4322](https://github.com/apache/arrow-adbc/pull/4322), |
| 134 | +[#4486](https://github.com/apache/arrow-adbc/pull/4486)). |
| 135 | + |
| 136 | +The PostgreSQL driver now uses libpq version 18.4 (up from 16.9) |
| 137 | +([#4566](https://github.com/apache/arrow-adbc/pull/4566)). Several bugs have |
| 138 | +been fixed around handling of the NUMERIC type, and it has been optimized on |
| 139 | +platforms where int128 is available (generally, platforms other than Windows) |
| 140 | +([#4536](https://github.com/apache/arrow-adbc/pull/4536), |
| 141 | +[#4499](https://github.com/apache/arrow-adbc/pull/4499), |
| 142 | +[#4523](https://github.com/apache/arrow-adbc/pull/4523), |
| 143 | +[#4498](https://github.com/apache/arrow-adbc/pull/4498)). GetObjects now |
| 144 | +populates the `xdbc_type_name` field |
| 145 | +([#4457](https://github.com/apache/arrow-adbc/pull/4457)). JSON columns are |
| 146 | +now returned with the `arrow.json` extension type |
| 147 | +([#4415](https://github.com/apache/arrow-adbc/pull/4415)), and ingesting into |
| 148 | +JSONB columns is now supported |
| 149 | +([#4505](https://github.com/apache/arrow-adbc/pull/4505)). |
| 150 | + |
| 151 | +The SQLite driver now uses SQLite version 3.53.1 (up from 3.51.2) |
| 152 | +([#4566](https://github.com/apache/arrow-adbc/pull/4566)). It now recognizes |
| 153 | +URIs with the `sqlite://` scheme |
| 154 | +([#4463](https://github.com/apache/arrow-adbc/pull/4463)). |
| 155 | + |
| 156 | +## Contributors |
| 157 | + |
| 158 | +``` |
| 159 | +$ git shortlog --perl-regexp --author='^((?!dependabot\[bot\]).*)$' -sn apache-arrow-adbc-23..apache-arrow-adbc-24 |
| 160 | + 58 David Li |
| 161 | + 16 Bryce Mecum |
| 162 | + 11 Fredrik Fornwall |
| 163 | + 7 Curt Hagenlocher |
| 164 | + 7 eitsupi |
| 165 | + 6 Mandukhai Alimaa |
| 166 | + 5 davidhcoe |
| 167 | + 4 Matt Topol |
| 168 | + 4 takuya kodama |
| 169 | + 3 Ian Cook |
| 170 | + 3 복준수 |
| 171 | + 2 Artur Rakhmatulin |
| 172 | + 2 Austin Bonander |
| 173 | + 2 Bruce Irschick |
| 174 | + 2 Daniel_McBride |
| 175 | + 2 Emil Sadek |
| 176 | + 1 Arnold Wakim |
| 177 | + 1 Aurélien Pupier |
| 178 | + 1 Dan Liu |
| 179 | + 1 Felipe Oliveira Carvalho |
| 180 | + 1 Kent Wu |
| 181 | + 1 Neal Richardson |
| 182 | + 1 Nir Portal |
| 183 | + 1 Pavel Agafonov |
| 184 | + 1 Rishav Rungta |
| 185 | + 1 Shubham Pandey |
| 186 | + 1 mete |
| 187 | + 1 xinyu.lin |
| 188 | +``` |
| 189 | + |
| 190 | +## Roadmap |
| 191 | + |
| 192 | +We are working on the next revision of the API standard, focusing on missing |
| 193 | +features (primarily metadata/catalog data). We welcome anyone interested in |
| 194 | +contributing. Current progress can be found in the [1.2.0 specification |
| 195 | +milestone](https://github.com/apache/arrow-adbc/milestone/9). |
| 196 | + |
| 197 | +## Getting Involved |
| 198 | + |
| 199 | +We welcome questions and contributions from all interested. Issues |
| 200 | +can be filed on [GitHub][4], and questions can be directed to GitHub |
| 201 | +or the [Arrow mailing lists][5]. |
| 202 | + |
| 203 | +[1]: https://github.com/apache/arrow-adbc/milestone/28 |
| 204 | +[2]: #contributors |
| 205 | +[3]: https://github.com/apache/arrow-adbc/blob/apache-arrow-adbc-24/CHANGELOG.md |
| 206 | +[4]: https://github.com/apache/arrow-adbc/issues |
| 207 | +[5]: {% link community.md %} |
| 208 | +[specification]: https://arrow.apache.org/adbc/24/format/specification.html |
0 commit comments