<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://arrow.apache.org/feed.xml" rel="self" type="application/atom+xml" /><link href="https://arrow.apache.org/" rel="alternate" type="text/html" /><updated>2026-04-08T22:32:59-04:00</updated><id>https://arrow.apache.org/feed.xml</id><title type="html">Apache Arrow</title><subtitle>Apache Arrow is the universal columnar format and multi-language toolbox for fast data interchange and in-memory analytics. It specifies a standardized language-independent column-oriented memory format for flat and nested data, organized for efficient analytic operations on modern hardware. It also provides computational libraries and zero-copy streaming messaging and interprocess communication. Languages currently supported include C, C++, C#, Go, Java, JavaScript, MATLAB, Python, R, Ruby, and Rust.</subtitle><entry><title type="html">Apache Arrow ADBC 23 (Libraries) Release</title><link href="https://arrow.apache.org/blog/2026/04/07/adbc-23-release/" rel="alternate" type="text/html" title="Apache Arrow ADBC 23 (Libraries) Release" /><published>2026-04-07T00:00:00-04:00</published><updated>2026-04-07T00:00:00-04:00</updated><id>https://arrow.apache.org/blog/2026/04/07/adbc-23-release</id><content type="html" xml:base="https://arrow.apache.org/blog/2026/04/07/adbc-23-release/"><![CDATA[<!--

-->
<p>The Apache Arrow team is pleased to announce the version 23 release of
the Apache Arrow ADBC libraries. This release includes <a href="https://github.com/apache/arrow-adbc/milestone/27"><strong>41
resolved issues</strong></a> from <a href="#contributors"><strong>20 distinct contributors</strong></a>.</p>
<p>This is a release of the <strong>libraries</strong>, which are at version 23.  The
<a href="https://arrow.apache.org/adbc/23/format/specification.html"><strong>API specification</strong></a> is versioned separately and is at
version 1.1.0.</p>
<p>The subcomponents are versioned independently:</p>
<ul>
<li>C/C++/GLib/Go/Python/Ruby: 1.11.0</li>
<li>C#: 0.23.0</li>
<li>Java: 0.23.0</li>
<li>R: 0.23.0</li>
<li>Rust: 0.23.0</li>
</ul>
<p>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 <a href="https://github.com/apache/arrow-adbc/blob/apache-arrow-adbc-23/CHANGELOG.md">complete changelog</a>.</p>
<h2>Release Highlights</h2>
<p>A breaking change has been made to the Rust APIs (pre-1.0): returned
<code>RecordBatchReader</code>s are now type-erased and boxed for caller flexibility;
this also fixes the returned reader lifetime accidentally being tied to input
argument lifetimes (<a href="https://github.com/apache/arrow-adbc/pull/3904">#3904</a>).</p>
<p>A driver manager for Node.js is now available from NPM
(<a href="https://github.com/apache/arrow-adbc/pull/4046">#4046</a>,
<a href="https://github.com/apache/arrow-adbc/pull/4091">#4091</a>,
<a href="https://github.com/apache/arrow-adbc/pull/4116">#4116</a>,
<a href="https://github.com/apache/arrow-adbc/pull/4125">#4125</a>, etc.).</p>
<p>The C++ and Rust driver managers now support <a href="https://arrow.apache.org/adbc/current/format/connection_profiles.html">connection
profiles</a>
(<a href="https://github.com/apache/arrow-adbc/pull/3876">#3876</a>,
<a href="https://github.com/apache/arrow-adbc/pull/3973">#3973</a>,
<a href="https://github.com/apache/arrow-adbc/pull/4080">#4080</a>,
<a href="https://github.com/apache/arrow-adbc/pull/4083">#4083</a> etc.). (Note that
other bindings that use the C++ driver manager, including GLib/Ruby, Go, Java,
Python, R, and so on, inherit this support.)</p>
<p>The Go APIs have added interfaces that always take a <code>context.Context</code> for
consistency, and to make sure context like telemetry traces propagate properly
(<a href="https://github.com/apache/arrow-adbc/pull/4009">#4009</a>).</p>
<p>The Python driver manager has added specific parameters for using <a href="https://arrow.apache.org/adbc/current/format/connection_profiles.html">connection
profiles</a>
as well (<a href="https://github.com/apache/arrow-adbc/pull/4078">#4078</a>,
<a href="https://github.com/apache/arrow-adbc/pull/4118">#4118</a>). Also, non-string
option values are directly accepted for convenience
(<a href="https://github.com/apache/arrow-adbc/pull/4088">#4088</a>). <code>adbc_get_statistics</code>
has been added (<a href="https://github.com/apache/arrow-adbc/pull/4129">#4129</a>).</p>
<p>The JNI bindings (allowing use of C/C++/Go/Rust/etc. drivers from Java) now
support more functions (GetObjects, GetInfo, ExecuteSchema, etc.)
(<a href="https://github.com/apache/arrow-adbc/pull/3966">#3966</a>,
<a href="https://github.com/apache/arrow-adbc/pull/3972">#3972</a>,
<a href="https://github.com/apache/arrow-adbc/pull/4056">#4056</a>).</p>
<p>Packages are now being uploaded to
<a href="https://formulae.brew.sh/formula/apache-arrow-adbc">Homebrew</a>
(<a href="https://github.com/apache/arrow-adbc/pull/4131">#4131</a>).</p>
<p>Python wheels now require <code>manylinux_2_28</code>, up from <code>manylinux2010</code>, following
PyArrow (<a href="https://github.com/apache/arrow-adbc/pull/4146">#4146</a>).  On macOS,
macOS 12 is now the minimum version due to upgrading to Go 1.25+ (including on
conda-forge, where the packages previously pinned Go 1.24 to avoid this).</p>
<p>The PostgreSQL driver tries to reconcile Arrow NA arrays with PostgreSQL types
when binding (<a href="https://github.com/apache/arrow-adbc/pull/4098">#4098</a>). Also,
a bug in conversion from Arrow decimals to PostgreSQL numerics has been fixed
(<a href="https://github.com/apache/arrow-adbc/pull/3787">#3787</a>).</p>
<p>The SQLite driver now enables various optional features, like math functions
(<a href="https://github.com/apache/arrow-adbc/pull/4147">#4147</a>).</p>
<h2>Contributors</h2>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ git shortlog --perl-regexp --author='^((?!dependabot\[bot\]).*)$' -sn apache-arrow-adbc-22..apache-arrow-adbc-23
    35	David Li
    12	Kent Wu
    10	Matt Topol
     8	eitsupi
     6	Bryce Mecum
     5	Bruce Irschick
     4	Mandukhai Alimaa
     3	Emil Sadek
     3	Tornike Gurgenidze
     2	Dewey Dunnington
     2	Felipe Oliveira Carvalho
     2	eric-wang-1990
     1	Curt Hagenlocher
     1	Ian Cook
     1	Madhavendra Rathore
     1	Mila Page
     1	Pavel Agafonov
     1	Roshan Banisetti
     1	davidhcoe
     1	oglego
</code></pre></div></div>
<h2>Roadmap</h2>
<p>We are working on the next revision of the API standard, focusing on missing
features (primarily metadata/catalog data). We welcome anyone interested in
contributing. Current progress can be found in the <a href="https://github.com/apache/arrow-adbc/milestone/9">1.2.0 specification
milestone</a>.</p>
<h2>Getting Involved</h2>
<p>We welcome questions and contributions from all interested.  Issues
can be filed on <a href="https://github.com/apache/arrow-adbc/issues">GitHub</a>, and questions can be directed to GitHub
or the <a href="/community/">Arrow mailing lists</a>.</p>]]></content><author><name>pmc</name></author><category term="release" /><summary type="html"><![CDATA[The Apache Arrow team is pleased to announce the version 23 release of the Apache Arrow ADBC libraries. This release includes 41 resolved issues from 20 distinct contributors. This is a release of the libraries, which are at version 23. 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.11.0 C#: 0.23.0 Java: 0.23.0 R: 0.23.0 Rust: 0.23.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 A breaking change has been made to the Rust APIs (pre-1.0): returned RecordBatchReaders are now type-erased and boxed for caller flexibility; this also fixes the returned reader lifetime accidentally being tied to input argument lifetimes (#3904). A driver manager for Node.js is now available from NPM (#4046, #4091, #4116, #4125, etc.). The C++ and Rust driver managers now support connection profiles (#3876, #3973, #4080, #4083 etc.). (Note that other bindings that use the C++ driver manager, including GLib/Ruby, Go, Java, Python, R, and so on, inherit this support.) The Go APIs have added interfaces that always take a context.Context for consistency, and to make sure context like telemetry traces propagate properly (#4009). The Python driver manager has added specific parameters for using connection profiles as well (#4078, #4118). Also, non-string option values are directly accepted for convenience (#4088). adbc_get_statistics has been added (#4129). The JNI bindings (allowing use of C/C++/Go/Rust/etc. drivers from Java) now support more functions (GetObjects, GetInfo, ExecuteSchema, etc.) (#3966, #3972, #4056). Packages are now being uploaded to Homebrew (#4131). Python wheels now require manylinux_2_28, up from manylinux2010, following PyArrow (#4146). On macOS, macOS 12 is now the minimum version due to upgrading to Go 1.25+ (including on conda-forge, where the packages previously pinned Go 1.24 to avoid this). The PostgreSQL driver tries to reconcile Arrow NA arrays with PostgreSQL types when binding (#4098). Also, a bug in conversion from Arrow decimals to PostgreSQL numerics has been fixed (#3787). The SQLite driver now enables various optional features, like math functions (#4147). Contributors $ git shortlog --perl-regexp --author='^((?!dependabot\[bot\]).*)$' -sn apache-arrow-adbc-22..apache-arrow-adbc-23 35 David Li 12 Kent Wu 10 Matt Topol 8 eitsupi 6 Bryce Mecum 5 Bruce Irschick 4 Mandukhai Alimaa 3 Emil Sadek 3 Tornike Gurgenidze 2 Dewey Dunnington 2 Felipe Oliveira Carvalho 2 eric-wang-1990 1 Curt Hagenlocher 1 Ian Cook 1 Madhavendra Rathore 1 Mila Page 1 Pavel Agafonov 1 Roshan Banisetti 1 davidhcoe 1 oglego Roadmap We are working on the next revision of the API standard, focusing on missing features (primarily metadata/catalog data). We welcome anyone interested in contributing. Current progress can be found in the 1.2.0 specification milestone. 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.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" /><media:content medium="image" url="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Community Highlights 2025</title><link href="https://arrow.apache.org/blog/2026/03/19/arrow-2025-highlights/" rel="alternate" type="text/html" title="Community Highlights 2025" /><published>2026-03-19T00:00:00-04:00</published><updated>2026-03-19T00:00:00-04:00</updated><id>https://arrow.apache.org/blog/2026/03/19/arrow-2025-highlights</id><content type="html" xml:base="https://arrow.apache.org/blog/2026/03/19/arrow-2025-highlights/"><![CDATA[<!--

-->
<p>As you may have read in a previous blog post <sup class="footnote-ref"><a href="#fn1" id="fnref1">1</a></sup>, the Apache Arrow project
recently turned 10 years old. We are grateful to everyone who helped us
achieve this milestone, and we wanted to celebrate the community's
accomplishments, by publishing our community highlights from 2025.</p>
<p>We were inspired by the research by Dr Cat Hicks et al <sup class="footnote-ref"><a href="#fn2" id="fnref2">2</a></sup>, who found
that concrete evidence of progress and accomplishments is instrumental
to motivation and collaboration in developer teams. We think the same
should hold for open source.</p>
<hr />
<h2>New contributors</h2>
<p>It has been great to see many new contributors joining the project
in the past year, with over 300 such individuals observed across the main
Apache Arrow language implementations.</p>
<table class="table">
  <caption>Number of new contributors per repository.</caption>
  <thead style="background-color: #e9ecef">
    <tr>
      <th>Repository/Implementation</th>
      <th>Number of new contributors</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>arrow</td>
      <td>125</td>
    </tr>
    <tr>
      <td>arrow-rs</td>
      <td>132</td>
    </tr>
    <tr>
      <td>arrow-java</td>
      <td>28</td>
    </tr>
    <tr>
      <td>arrow-go</td>
      <td>35</td>
    </tr>
  </tbody>
</table>
<p>Worth highlighting is <a href="https://github.com/alinaliBQ">alinaliBQ</a> who
has been very active on the C++ Flight SQL ODBC Driver work together
with <a href="https://github.com/justing-bq">justing-bq</a>.</p>
<p><a href="https://github.com/AntoinePrv">AntoinePrv</a> has done a huge amount of
work on the C++ Parquet implementation and <a href="https://github.com/andishgar">andishgar</a>
in the C++ Statistics area.</p>
<p><a href="https://github.com/rmnskb">rmnskb</a> got involved with PyArrow in
EuroPython sprints and has contributed multiple PRs since then. On the
same event <a href="https://github.com/paddyroddy">paddyroddy</a> also started with
his first contribution and helped on the Python packaging side further on.</p>
<p><a href="https://github.com/sdf-jkl">sdf-jkl</a>, <a href="https://github.com/liamzwbao">liamzwbao</a>,
<a href="https://github.com/friendlymatthew">friendlymatthew</a>, and
<a href="https://github.com/klion26">klion26</a> helped drive early Variant
functionality in the Rust Parquet implementation and contributed a number
of follow-up improvements.</p>
<p><a href="https://github.com/jecsand838">jecsand838</a> drove major improvements to the
Rust <code>arrow-avro</code> crate, work highlighted in the
<a href="https://arrow.apache.org/blog/2025/10/23/introducing-arrow-avro/">Introducing Arrow Avro</a>
blog post.</p>
<table class="table">
  <caption>Notable New Contributors in apache/arrow for 2025.</caption>
  <thead style="background-color: #e9ecef">
    <tr>
      <th>Author</th>
      <th>Number of prs</th>
      <th>Number of line changes (+ and -)</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>alinaliBQ</td>
      <td>36</td>
      <td>15754</td>
    </tr>
    <tr>
      <td>andishgar</td>
      <td>19</td>
      <td>2926</td>
    </tr>
    <tr>
      <td>AntoinePrv</td>
      <td>8</td>
      <td>79257</td>
    </tr>
    <tr>
      <td>rmnskb</td>
      <td>7</td>
      <td>550</td>
    </tr>
    <tr>
      <td>justing-bq</td>
      <td>4</td>
      <td>12607</td>
    </tr>
  </tbody>
</table>
<table class="table">
  <caption>Notable New Contributors in apache/arrow-rs for 2025.</caption>
  <thead style="background-color: #e9ecef">
    <tr>
      <th>Author</th>
      <th>Number of prs</th>
      <th>Number of line changes (+ and -)</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>scovich</td>
      <td>50</td>
      <td>21006</td>
    </tr>
    <tr>
      <td>jecsand838</td>
      <td>38</td>
      <td>26753</td>
    </tr>
    <tr>
      <td>friendlymatthew</td>
      <td>33</td>
      <td>7203</td>
    </tr>
    <tr>
      <td>sdf-jkl</td>
      <td>4</td>
      <td>388</td>
    </tr>
    <tr>
      <td>rambleraptor</td>
      <td>4</td>
      <td>333</td>
    </tr>
  </tbody>
</table>
<table class="table">
  <caption>Notable New Contributors in apache/arrow-go for 2025.</caption>
  <thead style="background-color: #e9ecef">
    <tr>
      <th>Author</th>
      <th>Number of prs</th>
      <th>Number of line changes (+ and -)</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Mandukhai-Alimaa</td>
      <td>6</td>
      <td>1392</td>
    </tr>
    <tr>
      <td>hamilton-earthscope</td>
      <td>5</td>
      <td>2998</td>
    </tr>
  </tbody>
</table>
<h2>Release, Packaging and CI</h2>
<p>A lot of work has been done around the Continuous Integration and
Developer Tools area. Ensuring a project with the reach of Arrow is properly working
requires validation on a huge matrix of operating systems, architectures, libraries,
versions. Needless to say that maintenance work has tremendous importance for the
health of the project and the positive contributor experience.</p>
<p>The most active contributors in the main repository are the ones contributing
heavily on those areas while also providing the most review capacity. Shout out
to <a href="https://github.com/kou">kou</a> and <a href="https://github.com/raulcd">raulcd</a> for
taking such good care of the project and devoting countless hours so that everything
runs smoothly.</p>
<p>Notable contributions worth mentioning are enhanced release automation and
reproducible builds for sources, migrating remaining AppVeyor and Azure jobs
to GitHub actions, improving dev experience with more pre-commit checks instead
of custom made linting tools.</p>
<p>Moving some implementations out of the main repository (apache/arrow on GitHub)
helped with easier releases and maintenance of the main repository and also of
separate language implementations. The current apache/arrow repo now holds the format
specification, C++ implementation together with all the bindings to it (Python, R, Ruby
and C GLib). Other languages now live in their own apache/ repos namely
<a href="https://github.com/apache/arrow-java">apache/arrow-java</a>,
<a href="https://github.com/apache/arrow-js">apache/arrow-js</a>,
<a href="https://github.com/apache/arrow-rs">apache/arrow-rs</a>,
<a href="https://github.com/apache/arrow-go">apache/arrow-go</a>,
<a href="https://github.com/apache/arrow-nanoarrow">apache/arrow-nanoarrow</a>,
<a href="https://github.com/apache/arrow-dotnet">apache/arrow-dotnet</a> and
<a href="https://github.com/apache/arrow-swift">apache/arrow-swift</a>.</p>
<table class="table">
  <caption>Notable Contributors in apache/arrow for 2025.</caption>
  <thead style="background-color: #e9ecef">
    <tr>
      <th>Author</th>
      <th>Number of prs</th>
      <th>Number of line changes (+ and -)</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>kou</td>
      <td>221</td>
      <td>141015</td>
    </tr>
    <tr>
      <td>AntoinePrv</td>
      <td>8</td>
      <td>79257</td>
    </tr>
    <tr>
      <td>raulcd</td>
      <td>110</td>
      <td>46645</td>
    </tr>
    <tr>
      <td>pitrou</td>
      <td>101</td>
      <td>36585</td>
    </tr>
    <tr>
      <td>jbonofre</td>
      <td>1</td>
      <td>20061</td>
    </tr>
  </tbody>
</table>
<table class="table">
  <caption>Notable Components in apache/arrow for 2025.</caption>
  <thead style="background-color: #e9ecef">
    <tr>
      <th>Component label</th>
      <th>Number of merged prs</th>
      <th>Number of line changes (+ and -)</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Parquet</td>
      <td>100</td>
      <td>103828</td>
    </tr>
    <tr>
      <td>C++</td>
      <td>387</td>
      <td>82744</td>
    </tr>
    <tr>
      <td>FlightRPC</td>
      <td>43</td>
      <td>52659</td>
    </tr>
    <tr>
      <td>CI</td>
      <td>237</td>
      <td>42249</td>
    </tr>
    <tr>
      <td>Ruby</td>
      <td>74</td>
      <td>20676</td>
    </tr>
  </tbody>
</table>
<h2>Migration of infrastructure from Voltron Data</h2>
<p>As Voltron Data has wound down its operations in 2025, the Arrow project
had to migrate benchmarking infrastructure and nightly report from
Voltron-managed services to an Arrow-managed AWS account. This work has been
driven by <a href="https://github.com/rok">rok</a>.</p>
<h2>Closing of Stale issues</h2>
<p><a href="https://github.com/thisisnic">thisisnic</a> was working on closing of stale
issues in the apache/arrow repository which helped surfacing important
issues that were overlooked or forgotten.</p>
<h2>Code contributions</h2>
<h3>C++ implementation</h3>
<p>Community support for maintenance and development of the Acero C++
is continuing with multiple bigger contributions in 2025 done by
<a href="https://github.com/pitrou">pitrou</a> and <a href="https://github.com/zanmato1984">zanmato1984</a>.</p>
<p>Many kernels have been moved from the integrated compute module into
a separate, optional package for improvement of modularity and distribution
size when optional compute functionality is not being used. The work has
been done by <a href="https://github.com/raulcd">raulcd</a>.</p>
<h3>Arrow C++ Parquet implementation</h3>
<p>There have been multiple contributions to fix and improve fuzzing
support for Parquet. Fuzzing work is led by <a href="https://github.com/pitrou">pitrou</a>
who is also one of the most active members of the community guiding other
developers and supporting us with abundant review capacity.</p>
<p>Multiple newer types have also been supported in the last year,
namely: VARIANT, UUID, GEOMETRY and GEOGRAPHY contributed
by <a href="https://github.com/neilechao">neilechao</a> and
<a href="https://github.com/paleolimbot">paleolimbot</a>.</p>
<p>An important feature added has also been Content-Defined Chunking
which improves deduplication of Parquet files with mostly identical
contents, by choosing data page boundaries based on actual contents
rather than a number of values <sup class="footnote-ref"><a href="#fn3" id="fnref3">3</a></sup>. This work has been done by
<a href="https://github.com/kszucs">kszucs</a>.</p>
<p>There have been improvements in the Parquet encryption support for
most of the releases in the last year. These efforts have been
driven mostly by <a href="https://github.com/EnricoMi">EnricoMi</a>,
<a href="https://github.com/pitrou">pitrou</a>, <a href="https://github.com/adamreeve">adamreeve</a>
and <a href="https://github.com/kapoisu">kapoisu</a>.</p>
<h3>PyArrow</h3>
<p>A lot of work has been put into adding type annotations. It all
started in July at EuroPython sprints and the code is now ready to be
reviewed and merged. Some more review capacity will be needed to get
this over the finish line. The work has been championed by
<a href="https://github.com/rok">rok</a>.</p>
<h3>Rust</h3>
<p>Arrow Rust community invested heavily in the Rust parquet reader for
which they created several blog posts <sup class="footnote-ref"><a href="#fn4" id="fnref4">4</a></sup>, <sup class="footnote-ref"><a href="#fn5" id="fnref5">5</a></sup>. The work has been
championed by <a href="https://github.com/alamb">alamb</a> and
<a href="https://github.com/etseidl">etseidl</a>.</p>
<table class="table">
  <caption>Notable Components in apache/arrow-rs for 2025.</caption>
  <thead style="background-color: #e9ecef">
    <tr>
      <th>component</th>
      <th>merged_prs</th>
      <th>line_changes</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>parquet</td>
      <td>333</td>
      <td>140958</td>
    </tr>
    <tr>
      <td>arrow</td>
      <td>436</td>
      <td>76590</td>
    </tr>
    <tr>
      <td>parquet-variant</td>
      <td>125</td>
      <td>41832</td>
    </tr>
    <tr>
      <td>api-change</td>
      <td>59</td>
      <td>33938</td>
    </tr>
    <tr>
      <td>arrow-avro</td>
      <td>48</td>
      <td>29487</td>
    </tr>
  </tbody>
</table>
<h3>Java</h3>
<p>The biggest changes in apache/arrow-java for 2025 have been connected
to Flight and Avro components plus Sphinx support due to the Java
implementation being moved into a separate Apache repository.
Contributors involved in the above are <a href="https://github.com/lidavidm">lidavidm</a>
and <a href="https://github.com/martin-traverse">martin-traverse</a>.</p>
<h3>Go</h3>
<p>There has been a lot of work related to new variant type in the
Parquet implementation done in apache/arrow-go all by
<a href="https://github.com/zeroshade">zeroshade</a>.</p>
<p>Noticeable emphasis was also visible on performance-focused PRs leading to
the addition of row seeking, bloom filter reading/writing, and reduction of
allocations in the Parquet library along with significant optimization work
in the <code>compute.Take</code> kernels. Shout out to <a href="https://github.com/pixelherodev">pixelherodev</a>
and <a href="https://github.com/hamilton-earthscope">hamilton-earthscope</a> for the
emphasis they placed on improving performance.</p>
<table class="table">
  <caption>Notable Components in apache/arrow-go for 2025.</caption>
  <thead style="background-color: #e9ecef">
    <tr>
      <th>component</th>
      <th>merged_prs</th>
      <th>line_changes</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>parquet</td>
      <td>34</td>
      <td>27056</td>
    </tr>
    <tr>
      <td>arrow</td>
      <td>33</td>
      <td>14235</td>
    </tr>
  </tbody>
</table>
<h3>Nanoarrow</h3>
<p>Bigger work in nanoarrow include Decimal32/64 and ListView/LargeListView support,
LZ4 and ZSTD decompression in the IPC reader, and broader packaging via Conan, Homebrew,
and vcpkg. Contributors driving most above are <a href="https://github.com/paleolimbot">paleolimbot</a>
and <a href="https://github.com/WillAyd">WillAyd</a>.</p>
<hr />
<h2>Arrow Summit 25</h2>
<p>One last thing to highlight would be our first Arrow Summit 25 that
was held in Paris in October 2025. The event was a great success and
it brought users, contributors and maintainers together. It
definitely was a highlight of the year for many of us. Thanks to
<a href="https://github.com/raulcd">raulcd</a> and <a href="https://github.com/pitrou">pitrou</a>
for organizing the event.</p>
<img src="/img/arrow_summit.jpeg" alt="Arrow Summit 25 group picture" width="100%">
<hr />
<h2>Thank you!</h2>
<p>We would like to thank every single contributor to Apache Arrow for
being a part of this great community and project! Hope this blog
post helps to validate all the work you have done and motivates us
to continue collaborating and growing together!</p>
<hr />
<br>
<p>The Notebooks with the analysis for this blog post can be found
in <sup class="footnote-ref"><a href="#fn6" id="fnref6">6</a></sup>.</p>
<p>Note not all language implementations are mentioned. Some due to being
moved into a separate repository in 2025 resulting in missing information
for large amount of merged pull requests. Others due to having lower
number of bigger contributions in the past year.</p>
<hr />
<section class="footnotes">
<ol>
<li id="fn1">
<p><a href="https://arrow.apache.org/blog/2026/02/12/arrow-anniversary/">Apache Arrow is 10 years old 🎉</a> <a href="#fnref1" class="footnote-backref">↩</a></p>
</li>
<li id="fn2">
<p><a href="https://ieeexplore.ieee.org/abstract/document/10491133">Developer Thriving: Four Sociocognitive Factors That Create Resilient Productivity on Software Teams</a> <a href="#fnref2" class="footnote-backref">↩</a></p>
</li>
<li id="fn3">
<p><a href="https://huggingface.co/blog/parquet-cdc">Parquet Content-Defined Chunking</a> <a href="#fnref3" class="footnote-backref">↩</a></p>
</li>
<li id="fn4">
<p><a href="https://arrow.apache.org/blog/2025/12/11/parquet-late-materialization-deep-dive/">A Practical Dive Into Late Materialization in arrow-rs Parquet Reads</a> <a href="#fnref4" class="footnote-backref">↩</a></p>
</li>
<li id="fn5">
<p><a href="https://arrow.apache.org/blog/2025/10/23/rust-parquet-metadata/">3x-9x Faster Apache Parquet Footer Metadata Using a Custom Thrift Parser in Rust</a> <a href="#fnref5" class="footnote-backref">↩</a></p>
</li>
<li id="fn6">
<p><a href="https://github.com/arrow-maintenance/explorations/tree/main/yearly_highlights">arrow-maintenance/explorations</a> <a href="#fnref6" class="footnote-backref">↩</a></p>
</li>
</ol>
</section>]]></content><author><name>pmc</name></author><category term="arrow" /><summary type="html"><![CDATA[As you may have read in a previous blog post 1, the Apache Arrow project recently turned 10 years old. We are grateful to everyone who helped us achieve this milestone, and we wanted to celebrate the community's accomplishments, by publishing our community highlights from 2025. We were inspired by the research by Dr Cat Hicks et al 2, who found that concrete evidence of progress and accomplishments is instrumental to motivation and collaboration in developer teams. We think the same should hold for open source. New contributors It has been great to see many new contributors joining the project in the past year, with over 300 such individuals observed across the main Apache Arrow language implementations. Number of new contributors per repository. Repository/Implementation Number of new contributors arrow 125 arrow-rs 132 arrow-java 28 arrow-go 35 Worth highlighting is alinaliBQ who has been very active on the C++ Flight SQL ODBC Driver work together with justing-bq. AntoinePrv has done a huge amount of work on the C++ Parquet implementation and andishgar in the C++ Statistics area. rmnskb got involved with PyArrow in EuroPython sprints and has contributed multiple PRs since then. On the same event paddyroddy also started with his first contribution and helped on the Python packaging side further on. sdf-jkl, liamzwbao, friendlymatthew, and klion26 helped drive early Variant functionality in the Rust Parquet implementation and contributed a number of follow-up improvements. jecsand838 drove major improvements to the Rust arrow-avro crate, work highlighted in the Introducing Arrow Avro blog post. Notable New Contributors in apache/arrow for 2025. Author Number of prs Number of line changes (+ and -) alinaliBQ 36 15754 andishgar 19 2926 AntoinePrv 8 79257 rmnskb 7 550 justing-bq 4 12607 Notable New Contributors in apache/arrow-rs for 2025. Author Number of prs Number of line changes (+ and -) scovich 50 21006 jecsand838 38 26753 friendlymatthew 33 7203 sdf-jkl 4 388 rambleraptor 4 333 Notable New Contributors in apache/arrow-go for 2025. Author Number of prs Number of line changes (+ and -) Mandukhai-Alimaa 6 1392 hamilton-earthscope 5 2998 Release, Packaging and CI A lot of work has been done around the Continuous Integration and Developer Tools area. Ensuring a project with the reach of Arrow is properly working requires validation on a huge matrix of operating systems, architectures, libraries, versions. Needless to say that maintenance work has tremendous importance for the health of the project and the positive contributor experience. The most active contributors in the main repository are the ones contributing heavily on those areas while also providing the most review capacity. Shout out to kou and raulcd for taking such good care of the project and devoting countless hours so that everything runs smoothly. Notable contributions worth mentioning are enhanced release automation and reproducible builds for sources, migrating remaining AppVeyor and Azure jobs to GitHub actions, improving dev experience with more pre-commit checks instead of custom made linting tools. Moving some implementations out of the main repository (apache/arrow on GitHub) helped with easier releases and maintenance of the main repository and also of separate language implementations. The current apache/arrow repo now holds the format specification, C++ implementation together with all the bindings to it (Python, R, Ruby and C GLib). Other languages now live in their own apache/ repos namely apache/arrow-java, apache/arrow-js, apache/arrow-rs, apache/arrow-go, apache/arrow-nanoarrow, apache/arrow-dotnet and apache/arrow-swift. Notable Contributors in apache/arrow for 2025. Author Number of prs Number of line changes (+ and -) kou 221 141015 AntoinePrv 8 79257 raulcd 110 46645 pitrou 101 36585 jbonofre 1 20061 Notable Components in apache/arrow for 2025. Component label Number of merged prs Number of line changes (+ and -) Parquet 100 103828 C++ 387 82744 FlightRPC 43 52659 CI 237 42249 Ruby 74 20676 Migration of infrastructure from Voltron Data As Voltron Data has wound down its operations in 2025, the Arrow project had to migrate benchmarking infrastructure and nightly report from Voltron-managed services to an Arrow-managed AWS account. This work has been driven by rok. Closing of Stale issues thisisnic was working on closing of stale issues in the apache/arrow repository which helped surfacing important issues that were overlooked or forgotten. Code contributions C++ implementation Community support for maintenance and development of the Acero C++ is continuing with multiple bigger contributions in 2025 done by pitrou and zanmato1984. Many kernels have been moved from the integrated compute module into a separate, optional package for improvement of modularity and distribution size when optional compute functionality is not being used. The work has been done by raulcd. Arrow C++ Parquet implementation There have been multiple contributions to fix and improve fuzzing support for Parquet. Fuzzing work is led by pitrou who is also one of the most active members of the community guiding other developers and supporting us with abundant review capacity. Multiple newer types have also been supported in the last year, namely: VARIANT, UUID, GEOMETRY and GEOGRAPHY contributed by neilechao and paleolimbot. An important feature added has also been Content-Defined Chunking which improves deduplication of Parquet files with mostly identical contents, by choosing data page boundaries based on actual contents rather than a number of values 3. This work has been done by kszucs. There have been improvements in the Parquet encryption support for most of the releases in the last year. These efforts have been driven mostly by EnricoMi, pitrou, adamreeve and kapoisu. PyArrow A lot of work has been put into adding type annotations. It all started in July at EuroPython sprints and the code is now ready to be reviewed and merged. Some more review capacity will be needed to get this over the finish line. The work has been championed by rok. Rust Arrow Rust community invested heavily in the Rust parquet reader for which they created several blog posts 4, 5. The work has been championed by alamb and etseidl. Notable Components in apache/arrow-rs for 2025. component merged_prs line_changes parquet 333 140958 arrow 436 76590 parquet-variant 125 41832 api-change 59 33938 arrow-avro 48 29487 Java The biggest changes in apache/arrow-java for 2025 have been connected to Flight and Avro components plus Sphinx support due to the Java implementation being moved into a separate Apache repository. Contributors involved in the above are lidavidm and martin-traverse. Go There has been a lot of work related to new variant type in the Parquet implementation done in apache/arrow-go all by zeroshade. Noticeable emphasis was also visible on performance-focused PRs leading to the addition of row seeking, bloom filter reading/writing, and reduction of allocations in the Parquet library along with significant optimization work in the compute.Take kernels. Shout out to pixelherodev and hamilton-earthscope for the emphasis they placed on improving performance. Notable Components in apache/arrow-go for 2025. component merged_prs line_changes parquet 34 27056 arrow 33 14235 Nanoarrow Bigger work in nanoarrow include Decimal32/64 and ListView/LargeListView support, LZ4 and ZSTD decompression in the IPC reader, and broader packaging via Conan, Homebrew, and vcpkg. Contributors driving most above are paleolimbot and WillAyd. Arrow Summit 25 One last thing to highlight would be our first Arrow Summit 25 that was held in Paris in October 2025. The event was a great success and it brought users, contributors and maintainers together. It definitely was a highlight of the year for many of us. Thanks to raulcd and pitrou for organizing the event. Thank you! We would like to thank every single contributor to Apache Arrow for being a part of this great community and project! Hope this blog post helps to validate all the work you have done and motivates us to continue collaborating and growing together! The Notebooks with the analysis for this blog post can be found in 6. Note not all language implementations are mentioned. Some due to being moved into a separate repository in 2025 resulting in missing information for large amount of merged pull requests. Others due to having lower number of bigger contributions in the past year. Apache Arrow is 10 years old 🎉 ↩ Developer Thriving: Four Sociocognitive Factors That Create Resilient Productivity on Software Teams ↩ Parquet Content-Defined Chunking ↩ A Practical Dive Into Late Materialization in arrow-rs Parquet Reads ↩ 3x-9x Faster Apache Parquet Footer Metadata Using a Custom Thrift Parser in Rust ↩ arrow-maintenance/explorations ↩]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" /><media:content medium="image" url="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Apache Arrow Java 19.0.0 Release</title><link href="https://arrow.apache.org/blog/2026/03/16/arrow-java-19.0.0/" rel="alternate" type="text/html" title="Apache Arrow Java 19.0.0 Release" /><published>2026-03-16T00:00:00-04:00</published><updated>2026-03-16T00:00:00-04:00</updated><id>https://arrow.apache.org/blog/2026/03/16/arrow-java-19.0.0</id><content type="html" xml:base="https://arrow.apache.org/blog/2026/03/16/arrow-java-19.0.0/"><![CDATA[<!--

-->
<p>The Apache Arrow team is pleased to announce the <a href="https://github.com/apache/arrow-java/releases/tag/v19.0.0">v19.0.0</a> release of Apache Arrow Java.</p>
<h2>Changelog</h2>
<h3>What's Changed</h3>
<h4>Breaking Changes</h4>
<ul>
<li>GH-774: Consoliate BitVectorHelper.getValidityBufferSize and BaseValueVector.getValidityBufferSizeFromCount by @rtadepalli in <a href="https://github.com/apache/arrow-java/pull/775">#775</a></li>
<li>GH-586: Override fixedSizeBinary method for UnionMapWriter by @axreldable in <a href="https://github.com/apache/arrow-java/pull/885">#885</a></li>
<li>GH-891: Add ExtensionTypeWriterFactory to TransferPair by @jhrotko in <a href="https://github.com/apache/arrow-java/pull/892">#892</a></li>
<li>GH-948: Use buffer indexing for UUID vector by @jhrotko in <a href="https://github.com/apache/arrow-java/pull/949">#949</a></li>
<li>GH-139: [Flight] Stop return null from MetadataAdapter.getAll(String) and getAllByte(String) by @axreldable in <a href="https://github.com/apache/arrow-java/pull/1016">#1016</a></li>
</ul>
<h4>New Features and Enhancements</h4>
<ul>
<li>GH-52: Make RangeEqualsVisitor of RunEndEncodedVector more efficient by @ViggoC in <a href="https://github.com/apache/arrow-java/pull/761">#761</a></li>
<li>GH-765: Do not close/free imported BaseStruct objects by @pepijnve in <a href="https://github.com/apache/arrow-java/pull/766">#766</a></li>
<li>GH-79: Move splitAndTransferValidityBuffer to BaseValueVector by @rtadepalli in <a href="https://github.com/apache/arrow-java/pull/777">#777</a></li>
<li>GH-731: Avro adapter, output dictionary-encoded fields as enums by @martin-traverse in <a href="https://github.com/apache/arrow-java/pull/779">#779</a></li>
<li>GH-725: Added ExtensionReader by @xxlaykxx in <a href="https://github.com/apache/arrow-java/pull/726">#726</a></li>
<li>GH-882: Add support for loading native library from a user specified location by @pepijnve in <a href="https://github.com/apache/arrow-java/pull/883">#883</a></li>
<li>GH-109: Implement Vector Validators for StringView by @ViggoC in <a href="https://github.com/apache/arrow-java/pull/886">#886</a></li>
<li>GH-900: Fix gandiva groupId in arrow-bom by @XN137 in <a href="https://github.com/apache/arrow-java/pull/901">#901</a></li>
<li>GH-762: Implement VectorAppender for RunEndEncodedVector by @ViggoC in <a href="https://github.com/apache/arrow-java/pull/884">#884</a></li>
<li>GH-825: Add UUID canonical extension type by @jhrotko in <a href="https://github.com/apache/arrow-java/pull/903">#903</a></li>
<li>GH-110: Flight SQL JDBC related StringView components implementation by @ViggoC in <a href="https://github.com/apache/arrow-java/pull/905">#905</a></li>
<li>GH-863: [JDBC] Suppress benign exceptions from gRPC layer on ArrowFlightSqlClientHandler#close by @ennuite in <a href="https://github.com/apache/arrow-java/pull/910">#910</a></li>
<li>GH-929: Add UUID support in JDBC driver by @xborder in <a href="https://github.com/apache/arrow-java/pull/930">#930</a></li>
<li>GH-952: Add OAuth support by @xborder in <a href="https://github.com/apache/arrow-java/pull/953">#953</a></li>
<li>GH-946: Add Variant extension type support by @tmater in <a href="https://github.com/apache/arrow-java/pull/947">#947</a></li>
<li>GH-130: Fix AutoCloseables to work with @nullable structures by @axreldable in <a href="https://github.com/apache/arrow-java/pull/1017">#1017</a></li>
<li>GH-1038: Trim object memory for ArrowBuf by @lriggs in <a href="https://github.com/apache/arrow-java/pull/1044">#1044</a></li>
<li>GH-1061: Add codegen classifier jar for arrow-vector. by @lriggs in <a href="https://github.com/apache/arrow-java/pull/1062">#1062</a></li>
<li>GH-301: [Vector] Allow adding a vector at the end of VectorSchemaRoot by @axreldable in <a href="https://github.com/apache/arrow-java/pull/1013">#1013</a></li>
<li>GH-552: [Vector] Add absent methods to the UnionFixedSizeListWriter by @axreldable in <a href="https://github.com/apache/arrow-java/pull/1052">#1052</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/apache/arrow-java/commits/v19.0.0">changelog</a></p>]]></content><author><name>pmc</name></author><category term="release" /><summary type="html"><![CDATA[The Apache Arrow team is pleased to announce the v19.0.0 release of Apache Arrow Java. Changelog What's Changed Breaking Changes GH-774: Consoliate BitVectorHelper.getValidityBufferSize and BaseValueVector.getValidityBufferSizeFromCount by @rtadepalli in #775 GH-586: Override fixedSizeBinary method for UnionMapWriter by @axreldable in #885 GH-891: Add ExtensionTypeWriterFactory to TransferPair by @jhrotko in #892 GH-948: Use buffer indexing for UUID vector by @jhrotko in #949 GH-139: [Flight] Stop return null from MetadataAdapter.getAll(String) and getAllByte(String) by @axreldable in #1016 New Features and Enhancements GH-52: Make RangeEqualsVisitor of RunEndEncodedVector more efficient by @ViggoC in #761 GH-765: Do not close/free imported BaseStruct objects by @pepijnve in #766 GH-79: Move splitAndTransferValidityBuffer to BaseValueVector by @rtadepalli in #777 GH-731: Avro adapter, output dictionary-encoded fields as enums by @martin-traverse in #779 GH-725: Added ExtensionReader by @xxlaykxx in #726 GH-882: Add support for loading native library from a user specified location by @pepijnve in #883 GH-109: Implement Vector Validators for StringView by @ViggoC in #886 GH-900: Fix gandiva groupId in arrow-bom by @XN137 in #901 GH-762: Implement VectorAppender for RunEndEncodedVector by @ViggoC in #884 GH-825: Add UUID canonical extension type by @jhrotko in #903 GH-110: Flight SQL JDBC related StringView components implementation by @ViggoC in #905 GH-863: [JDBC] Suppress benign exceptions from gRPC layer on ArrowFlightSqlClientHandler#close by @ennuite in #910 GH-929: Add UUID support in JDBC driver by @xborder in #930 GH-952: Add OAuth support by @xborder in #953 GH-946: Add Variant extension type support by @tmater in #947 GH-130: Fix AutoCloseables to work with @nullable structures by @axreldable in #1017 GH-1038: Trim object memory for ArrowBuf by @lriggs in #1044 GH-1061: Add codegen classifier jar for arrow-vector. by @lriggs in #1062 GH-301: [Vector] Allow adding a vector at the end of VectorSchemaRoot by @axreldable in #1013 GH-552: [Vector] Add absent methods to the UnionFixedSizeListWriter by @axreldable in #1052 Full Changelog: changelog]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" /><media:content medium="image" url="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Apache Arrow Go 18.5.2 Release</title><link href="https://arrow.apache.org/blog/2026/03/04/arrow-go-18.5.2/" rel="alternate" type="text/html" title="Apache Arrow Go 18.5.2 Release" /><published>2026-03-04T00:00:00-05:00</published><updated>2026-03-04T00:00:00-05:00</updated><id>https://arrow.apache.org/blog/2026/03/04/arrow-go-18.5.2</id><content type="html" xml:base="https://arrow.apache.org/blog/2026/03/04/arrow-go-18.5.2/"><![CDATA[<!--

-->
<p>The Apache Arrow team is pleased to announce the v18.5.2 release of Apache Arrow Go.
This patch release covers 16 commits from 6 distinct contributors.</p>
<h2>Contributors</h2>
<div class="language-console highlighter-rouge"><div class="highlight"><pre class="highlight"><code data-lang="console"><span class="gp">$</span><span class="w"> </span>git shortlog <span class="nt">-sn</span> v18.5.1..v18.5.2
<span class="go">    11	Matt Topol
     2	daniel-adam-tfs
     1	Evan Todd
     1	Rusty Conover
     1	Stas Spiridonov
     1	William
</span></code></pre></div></div>
<h2>Changelog</h2>
<h3>What's Changed</h3>
<ul>
<li>chore: bump parquet-testing submodule by @zeroshade in <a href="https://github.com/apache/arrow-go/pull/633">#633</a></li>
<li>fix(arrow/array): handle empty binary values correctly in BinaryBuilder by @zeroshade in <a href="https://github.com/apache/arrow-go/pull/634">#634</a></li>
<li>test(arrow/array): add test to binary builder by @zeroshade in <a href="https://github.com/apache/arrow-go/pull/636">#636</a></li>
<li>fix(parquet): decryption of V2 data pages by @daniel-adam-tfs in <a href="https://github.com/apache/arrow-go/pull/596">#596</a></li>
<li>perf(arrow): Reduce the amount of allocated objects by @spiridonov in <a href="https://github.com/apache/arrow-go/pull/645">#645</a></li>
<li>fix(parquet/file): regression with decompressing data by @zeroshade in <a href="https://github.com/apache/arrow-go/pull/652">#652</a></li>
<li>fix(arrow/compute): take on record/array with nested struct by @zeroshade in <a href="https://github.com/apache/arrow-go/pull/653">#653</a></li>
<li>fix(parquet/file): write large string values by @zeroshade in <a href="https://github.com/apache/arrow-go/pull/655">#655</a></li>
<li>ci: ensure extra GC cycle for flaky tests by @zeroshade in <a href="https://github.com/apache/arrow-go/pull/661">#661</a></li>
<li>fix(arrow/array): handle exponent notation for unmarshal int by @zeroshade in <a href="https://github.com/apache/arrow-go/pull/662">#662</a></li>
<li>fix(flight/flightsql/driver): fix <code>time.Time</code> params by @etodd in <a href="https://github.com/apache/arrow-go/pull/666">#666</a></li>
<li>fix(parquet): bss encoding and tests on big endian systems by @daniel-adam-tfs in <a href="https://github.com/apache/arrow-go/pull/663">#663</a></li>
<li>fix(parquet/pqarrow): selective column reading of complex map column by @zeroshade in <a href="https://github.com/apache/arrow-go/pull/668">#668</a></li>
<li>feat(arrow/ipc): support custom_metadata on RecordBatch messages by @rustyconover in <a href="https://github.com/apache/arrow-go/pull/669">#669</a></li>
<li>feat: Support setting IPC options in FlightSQL call options by @peasee in <a href="https://github.com/apache/arrow-go/pull/674">#674</a></li>
<li>chore(dev/release): embed hash of source tarball into email by @zeroshade in <a href="https://github.com/apache/arrow-go/pull/675">#675</a></li>
<li>chore(arrow): bump PkgVersion to 18.5.2 by @zeroshade in <a href="https://github.com/apache/arrow-go/pull/676">#676</a></li>
</ul>
<h3>New Contributors</h3>
<ul>
<li>@spiridonov made their first contribution in <a href="https://github.com/apache/arrow-go/pull/645">#645</a></li>
<li>@etodd made their first contribution in <a href="https://github.com/apache/arrow-go/pull/666">#666</a></li>
<li>@rustyconover made their first contribution in <a href="https://github.com/apache/arrow-go/pull/669">#669</a></li>
<li>@peasee made their first contribution in <a href="https://github.com/apache/arrow-go/pull/674">#674</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/apache/arrow-go/compare/v18.5.1...v18.5.2">https://github.com/apache/arrow-go/compare/v18.5.1...v18.5.2</a></p>]]></content><author><name>pmc</name></author><category term="release" /><summary type="html"><![CDATA[The Apache Arrow team is pleased to announce the v18.5.2 release of Apache Arrow Go. This patch release covers 16 commits from 6 distinct contributors. Contributors $ git shortlog -sn v18.5.1..v18.5.2 11 Matt Topol 2 daniel-adam-tfs 1 Evan Todd 1 Rusty Conover 1 Stas Spiridonov 1 William Changelog What's Changed chore: bump parquet-testing submodule by @zeroshade in #633 fix(arrow/array): handle empty binary values correctly in BinaryBuilder by @zeroshade in #634 test(arrow/array): add test to binary builder by @zeroshade in #636 fix(parquet): decryption of V2 data pages by @daniel-adam-tfs in #596 perf(arrow): Reduce the amount of allocated objects by @spiridonov in #645 fix(parquet/file): regression with decompressing data by @zeroshade in #652 fix(arrow/compute): take on record/array with nested struct by @zeroshade in #653 fix(parquet/file): write large string values by @zeroshade in #655 ci: ensure extra GC cycle for flaky tests by @zeroshade in #661 fix(arrow/array): handle exponent notation for unmarshal int by @zeroshade in #662 fix(flight/flightsql/driver): fix time.Time params by @etodd in #666 fix(parquet): bss encoding and tests on big endian systems by @daniel-adam-tfs in #663 fix(parquet/pqarrow): selective column reading of complex map column by @zeroshade in #668 feat(arrow/ipc): support custom_metadata on RecordBatch messages by @rustyconover in #669 feat: Support setting IPC options in FlightSQL call options by @peasee in #674 chore(dev/release): embed hash of source tarball into email by @zeroshade in #675 chore(arrow): bump PkgVersion to 18.5.2 by @zeroshade in #676 New Contributors @spiridonov made their first contribution in #645 @etodd made their first contribution in #666 @rustyconover made their first contribution in #669 @peasee made their first contribution in #674 Full Changelog: https://github.com/apache/arrow-go/compare/v18.5.1...v18.5.2]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" /><media:content medium="image" url="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Apache Arrow nanoarrow 0.8.0 Release</title><link href="https://arrow.apache.org/blog/2026/02/24/nanoarrow-0.8.0-release/" rel="alternate" type="text/html" title="Apache Arrow nanoarrow 0.8.0 Release" /><published>2026-02-24T00:00:00-05:00</published><updated>2026-02-24T00:00:00-05:00</updated><id>https://arrow.apache.org/blog/2026/02/24/nanoarrow-0.8.0-release</id><content type="html" xml:base="https://arrow.apache.org/blog/2026/02/24/nanoarrow-0.8.0-release/"><![CDATA[<!--

-->
<p>The Apache Arrow team is pleased to announce the 0.8.0 release of
Apache Arrow nanoarrow. This release consists of 28 resolved GitHub issues from
10 contributors.</p>
<h2>Release Highlights</h2>
<ul>
<li>Support for building String View arrays by buffer</li>
<li>LZ4 decompression support in IPC reader</li>
<li>Support for Conan</li>
<li>Support for Hombrew</li>
</ul>
<p>See the
<a href="https://github.com/apache/arrow-nanoarrow/blob/apache-arrow-nanoarrow-0.8.0/CHANGELOG.md">Changelog</a>
for a detailed list of contributions to this release.</p>
<h2>Features</h2>
<h3>String Views By Buffer</h3>
<p>The C library in general supports two methods for producing or consuming arrays: most
users use the builder pattern (e.g., <code>ArrowArrayAppendString()</code>); however, the &quot;build
by buffer&quot; pattern can be effective when using nanoarrow with a higher level runtime
like C++, Rust, Python, or R, all of which have mechanisms to build buffers already.
The C library supports this with <code>ArrowArraySetBuffer()</code>; however, there was no way
to reserve and/or set variadic buffers for string view arrays. In nanoarrow 0.8.0,
the array builder API fully supports both mechanisms for building string view arrays.</p>
<h3>LZ4 Decompression Support</h3>
<p>The Arrow IPC reader included in the nanoarrow C library supports most features
of the Arrow IPC format; however, decompression support for the LZ4 codec was missing
which made the library and its bindings unusable for some common use cases. In 0.8.0,
decompression for the LZ4 codec was added to the C library.</p>
<p>Users of the C library will need to configure CMake with <code>-DNANOARROW_IPC_WITH_LZ4=ON</code>
and <code>-DNANOARROW_IPC=ON</code> to use CMake-resolved LZ4; however, client libraries
can also use an existing ZSTD or LZ4 implementation using callbacks just like in 0.7.0.</p>
<h3>nanoarrow on Conan</h3>
<p>The nanoarrow C library can now be installed using the
<a href="https://conan.io/center/recipes/nanoarrow">Conan</a> C/C++ Package Manager!
CMake projects can now use <code>find_package(nanoarrow)</code> when using a Conan-enabled
toolchain after adding the nanoarrow dependency to <code>conanfile.txt</code>.</p>
<p>Thanks to <a href="https://github.com/wgtmac">@wgtmac</a> for contributing the recipe!</p>
<h3>nanoarrow on Homebrew</h3>
<p>The nanoarrow C library can now be installed using
<a href="https://formulae.brew.sh/formula/nanoarrow">Homebrew</a>!</p>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code data-lang="shell">brew <span class="nb">install </span>nanoarrow
</code></pre></div></div>
<p>CMake projects can then use <code>find_package(nanoarrow)</code> when using Homebrew-provided
cmake and allows other vcpkg ports to use nanoarrow as a dependency.</p>
<p>Thanks to <a href="https://github.com/ankane">@ankane</a> for contributing the formula!</p>
<h2>Contributors</h2>
<p>This release consists of contributions from 12 contributors in addition
to the invaluable advice and support of the Apache Arrow community.</p>
<div class="language-console highlighter-rouge"><div class="highlight"><pre class="highlight"><code data-lang="console"><span class="gp">$</span><span class="w"> </span>git shortlog <span class="nt">-sn</span> apache-arrow-nanoarrow-0.8.0.dev..apache-arrow-nanoarrow-0.8.0-rc0
<span class="go">    23  Dewey Dunnington
     2  Bryce Mecum
     2  Dirk Eddelbuettel
     1  Even Rouault
     1  Kevin Liu
     1  Michael Chirico
     1  Namit Kewat
     1  Nyall Dawson
     1  Sutou Kouhei
     1  William Ayd
</span></code></pre></div></div>]]></content><author><name>pmc</name></author><category term="release" /><summary type="html"><![CDATA[The Apache Arrow team is pleased to announce the 0.8.0 release of Apache Arrow nanoarrow. This release consists of 28 resolved GitHub issues from 10 contributors. Release Highlights Support for building String View arrays by buffer LZ4 decompression support in IPC reader Support for Conan Support for Hombrew See the Changelog for a detailed list of contributions to this release. Features String Views By Buffer The C library in general supports two methods for producing or consuming arrays: most users use the builder pattern (e.g., ArrowArrayAppendString()); however, the &quot;build by buffer&quot; pattern can be effective when using nanoarrow with a higher level runtime like C++, Rust, Python, or R, all of which have mechanisms to build buffers already. The C library supports this with ArrowArraySetBuffer(); however, there was no way to reserve and/or set variadic buffers for string view arrays. In nanoarrow 0.8.0, the array builder API fully supports both mechanisms for building string view arrays. LZ4 Decompression Support The Arrow IPC reader included in the nanoarrow C library supports most features of the Arrow IPC format; however, decompression support for the LZ4 codec was missing which made the library and its bindings unusable for some common use cases. In 0.8.0, decompression for the LZ4 codec was added to the C library. Users of the C library will need to configure CMake with -DNANOARROW_IPC_WITH_LZ4=ON and -DNANOARROW_IPC=ON to use CMake-resolved LZ4; however, client libraries can also use an existing ZSTD or LZ4 implementation using callbacks just like in 0.7.0. nanoarrow on Conan The nanoarrow C library can now be installed using the Conan C/C++ Package Manager! CMake projects can now use find_package(nanoarrow) when using a Conan-enabled toolchain after adding the nanoarrow dependency to conanfile.txt. Thanks to @wgtmac for contributing the recipe! nanoarrow on Homebrew The nanoarrow C library can now be installed using Homebrew! brew install nanoarrow CMake projects can then use find_package(nanoarrow) when using Homebrew-provided cmake and allows other vcpkg ports to use nanoarrow as a dependency. Thanks to @ankane for contributing the formula! Contributors This release consists of contributions from 12 contributors in addition to the invaluable advice and support of the Apache Arrow community. $ git shortlog -sn apache-arrow-nanoarrow-0.8.0.dev..apache-arrow-nanoarrow-0.8.0-rc0 23 Dewey Dunnington 2 Bryce Mecum 2 Dirk Eddelbuettel 1 Even Rouault 1 Kevin Liu 1 Michael Chirico 1 Namit Kewat 1 Nyall Dawson 1 Sutou Kouhei 1 William Ayd]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" /><media:content medium="image" url="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Apache Arrow 23.0.1 Release</title><link href="https://arrow.apache.org/blog/2026/02/16/23.0.1-release/" rel="alternate" type="text/html" title="Apache Arrow 23.0.1 Release" /><published>2026-02-16T00:00:00-05:00</published><updated>2026-02-16T00:00:00-05:00</updated><id>https://arrow.apache.org/blog/2026/02/16/23.0.1-release</id><content type="html" xml:base="https://arrow.apache.org/blog/2026/02/16/23.0.1-release/"><![CDATA[<!--

-->
<p>The Apache Arrow team is pleased to announce the 23.0.1 release.
It includes <strong>a security fix for the C++ IPC file reader</strong>, so be sure to
read the relevant details below to see if you are affected.</p>
<p>Apart from that, 23.0.1 is mostly a bugfix release that includes <a href="https://github.com/apache/arrow/milestone/73?closed=1"><strong>28 resolved issues</strong></a>
on <a href="/release/23.0.1.html#contributors"><strong>29 distinct commits</strong></a> from <a href="/release/23.0.1.html#contributors"><strong>12 distinct contributors</strong></a>.</p>
<p>See the <a href="https://arrow.apache.org/install/">Install Page</a> to
learn how to get the libraries for your platform.</p>
<p>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 <a href="/release/23.0.1.html#changelog">complete changelog</a>.</p>
<h2>C++ notes</h2>
<ul>
<li>Fix possible OOB write in buffered IO (<a href="https://github.com/apache/arrow/issues/48311">GH-48311</a>).</li>
</ul>
<h3>IPC</h3>
<h4>CVE-2026-25087: Use After Free vulnerability in IPC file reader</h4>
<p>Fix a security issue can be triggered when reading an Arrow IPC file (but <em>not</em>
an IPC stream) with pre-buffering enabled, if the IPC file contains data with
variadic buffers (such as Binary View and String View data).</p>
<p>Pre-buffering is disabled by default, so your code is vulnerable only if it
enables it explicitly by calling <code>RecordBatchFileReader::PreBufferMetadata</code>.
Affected Arrow C++ versions are 15.0.0 through 23.0.0. The fix integrated
in 23.0.1 can also be separately viewed at
<a href="https://github.com/apache/arrow/pull/48925">GH-48925</a>.</p>
<p>See our <a href="https://lists.apache.org/thread/mpm4ld1qony30tchfpjtk5b11tcyvmwh">separate announcement</a>
for further detail.</p>
<h4>Other fixes</h4>
<ul>
<li>Avoid memory blowup with excessive variadic buffer count in IPC (<a href="https://github.com/apache/arrow/issues/48900">GH-48900</a>).</li>
</ul>
<h3>Gandiva</h3>
<ul>
<li>Fix passing CPU attributes to LLVM (<a href="https://github.com/apache/arrow/issues/48160">GH-48160</a>).</li>
<li>Detect overflow in <code>repeat()</code> (<a href="https://github.com/apache/arrow/issues/49159">GH-49159</a>).</li>
</ul>
<h3>Parquet</h3>
<ul>
<li>Avoid re-serializing footer for signature verification (<a href="https://github.com/apache/arrow/issues/48858">GH-48858</a>).</li>
</ul>
<h2>Python notes</h2>
<ul>
<li>Added missing NOTICE.txt and LICENSE.txt to wheels (<a href="https://github.com/apache/arrow/issues/48983">GH-48983</a>).</li>
<li>Some fixes for compatibility with newer Cython versions like (<a href="https://github.com/apache/arrow/issues/48965">GH-48965</a>),
(<a href="https://github.com/apache/arrow/issues/49156">GH-49156</a>) and (<a href="https://github.com/apache/arrow/issues/49138">GH-49138</a>).</li>
</ul>
<h2>Ruby notes</h2>
<ul>
<li>Fix a bug where <code>Arrow::ExecutePlan</code> nodes may be Garbage Collected (<a href="https://github.com/apache/arrow/issues/48880">GH-48880</a>).</li>
</ul>
<h2>R notes</h2>
<ul>
<li>Bump C++20 for R build infrastructure (<a href="https://github.com/apache/arrow/issues/48817">GH-48817</a>)
and fix some C++ 20 related compilation issues (<a href="https://github.com/apache/arrow/issues/48973">GH-48973</a>).</li>
</ul>
<h2>Other modules and languages</h2>
<p>No general changes were made to the other libraries or languages.</p>]]></content><author><name>pmc</name></author><category term="release" /><summary type="html"><![CDATA[The Apache Arrow team is pleased to announce the 23.0.1 release. It includes a security fix for the C++ IPC file reader, so be sure to read the relevant details below to see if you are affected. Apart from that, 23.0.1 is mostly a bugfix release that includes 28 resolved issues on 29 distinct commits from 12 distinct contributors. See the Install Page to learn how to get the libraries for your platform. 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. C++ notes Fix possible OOB write in buffered IO (GH-48311). IPC CVE-2026-25087: Use After Free vulnerability in IPC file reader Fix a security issue can be triggered when reading an Arrow IPC file (but not an IPC stream) with pre-buffering enabled, if the IPC file contains data with variadic buffers (such as Binary View and String View data). Pre-buffering is disabled by default, so your code is vulnerable only if it enables it explicitly by calling RecordBatchFileReader::PreBufferMetadata. Affected Arrow C++ versions are 15.0.0 through 23.0.0. The fix integrated in 23.0.1 can also be separately viewed at GH-48925. See our separate announcement for further detail. Other fixes Avoid memory blowup with excessive variadic buffer count in IPC (GH-48900). Gandiva Fix passing CPU attributes to LLVM (GH-48160). Detect overflow in repeat() (GH-49159). Parquet Avoid re-serializing footer for signature verification (GH-48858). Python notes Added missing NOTICE.txt and LICENSE.txt to wheels (GH-48983). Some fixes for compatibility with newer Cython versions like (GH-48965), (GH-49156) and (GH-49138). Ruby notes Fix a bug where Arrow::ExecutePlan nodes may be Garbage Collected (GH-48880). R notes Bump C++20 for R build infrastructure (GH-48817) and fix some C++ 20 related compilation issues (GH-48973). Other modules and languages No general changes were made to the other libraries or languages.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" /><media:content medium="image" url="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Apache Arrow is 10 years old 🎉</title><link href="https://arrow.apache.org/blog/2026/02/12/arrow-anniversary/" rel="alternate" type="text/html" title="Apache Arrow is 10 years old 🎉" /><published>2026-02-12T00:00:00-05:00</published><updated>2026-02-12T00:00:00-05:00</updated><id>https://arrow.apache.org/blog/2026/02/12/arrow-anniversary</id><content type="html" xml:base="https://arrow.apache.org/blog/2026/02/12/arrow-anniversary/"><![CDATA[<!--

-->
<p>The Apache Arrow project was officially established and had its
<a href="https://github.com/apache/arrow/commit/d5aa7c46692474376a3c31704cfc4783c86338f2">first git commit</a>
on February 5th 2016, and we are therefore enthusiastic to announce its 10-year
anniversary!</p>
<p>Looking back over these 10 years, the project has developed in many unforeseen
ways and we believe to have delivered on our objective of providing agnostic,
efficient, durable standards for the exchange of columnar data.</p>
<h2>How it started</h2>
<p>From the start, Arrow has been a joint effort between practitioners of various
horizons looking to build common grounds to efficiently exchange columnar data
between different libraries and systems.
In <a href="https://sympathetic.ink/2024/02/06/Chapter-2-From-Parquet-to-Arrow.html">this blog post</a>,
Julien Le Dem recalls how some of the founders of the <a href="https://parquet.apache.org/">Apache Parquet</a>
project participated in the early days of the Arrow design phase. The idea of Arrow
as an in-memory format was meant to address the other half of the interoperability
problem, the natural complement to Parquet as a persistent storage format.</p>
<h2>Apache Arrow 0.1.0</h2>
<p>The first Arrow release, numbered 0.1.0, was tagged on October 7th 2016. It already
featured the main data types that are still the bread-and-butter of most Arrow datasets,
as evidenced in this <a href="https://github.com/apache/arrow/blob/e7080ef9f1bd91505996edd4e4b7643cc54f6b5f/format/Message.fbs#L96-L115">Flatbuffers declaration</a>:</p>
<div class="language-flatbuffers highlighter-rouge"><div class="highlight"><pre class="highlight"><code data-lang="flatbuffers">
/// ----------------------------------------------------------------------
/// Top-level Type value, enabling extensible type-specific metadata. We can
/// add new logical types to Type without breaking backwards compatibility

union Type {
  Null,
  Int,
  FloatingPoint,
  Binary,
  Utf8,
  Bool,
  Decimal,
  Date,
  Time,
  Timestamp,
  Interval,
  List,
  Struct_,
  Union
}
</code></pre></div></div>
<p>The <a href="https://lists.apache.org/thread/6ow4r2kq1qw1rxp36nql8gokgoczozgw">release announcement</a>
made the bold claim that <strong>&quot;the metadata and physical data representation should
be fairly stable as we have spent time finalizing the details&quot;</strong>. Does that promise
hold? The short answer is: yes, almost! But let us analyse that in a bit more detail:</p>
<ul>
<li>
<p>the <a href="https://arrow.apache.org/docs/format/Columnar.html">Columnar format</a>, for
the most part, has only seen additions of new datatypes since 2016.
<strong>One single breaking change</strong> occurred: Union types cannot have a
top-level validity bitmap anymore.</p>
</li>
<li>
<p>the <a href="https://arrow.apache.org/docs/format/Columnar.html#serialization-and-interprocess-communication-ipc">IPC format</a>
has seen several minor evolutions of its framing and metadata format; these
evolutions are encoded in the <code>MetadataVersion</code> field which ensures that new
readers can read data produced by old writers. The single breaking change is
related to the same Union validity change mentioned above.</p>
</li>
</ul>
<h2>First cross-language integration tests</h2>
<p>Arrow 0.1.0 had two implementations: C++ and Java, with bindings of the former
to Python. There were also no integration tests to speak of, that is, no automated
assessment that the two implementations were in sync (what could go wrong?).</p>
<p>Integration tests had to wait for <a href="https://issues.apache.org/jira/browse/ARROW-372">November 2016</a>
to be designed, and the first <a href="https://github.com/apache/arrow/commit/45ed7e7a36fb2a69de468c41132b6b3bbd270c92">automated CI run</a>
probably occurred in December of the same year. Its results cannot be fetched anymore,
so we can only assume the tests passed successfully. 🙂</p>
<p>From that moment, integration tests have grown to follow additions to the Arrow format,
while ensuring that older data can still be read successfully.  For example, the
integration tests that are routinely checked against multiple implementations of
Arrow have data files <a href="https://github.com/apache/arrow-testing/tree/master/data/arrow-ipc-stream/integration/0.14.1">generated in 2019 by Arrow 0.14.1</a>.</p>
<h2>No breaking changes... almost</h2>
<p>As mentioned above, at some point the Union type lost its top-level validity bitmap,
breaking compatibility for the workloads that made use of this feature.</p>
<p>This change was <a href="https://lists.apache.org/thread/przo99rtpv4rp66g1h4gn0zyxdq56m27">proposed back in June 2020</a>
and enacted shortly thereafter. It elicited no controversy and doesn't seem to have
caused any significant discontent among users, signaling that the feature was
probably not widely used (if at all).</p>
<p>Since then, there has been precisely zero breaking change in the Arrow Columnar and IPC
formats.</p>
<h2>Apache Arrow 1.0.0</h2>
<p>We have been extremely cautious with version numbering and waited
<a href="https://arrow.apache.org/blog/2020/07/24/1.0.0-release/">until July 2020</a>
before finally switching away from 0.x version numbers. This was signalling
to the world that Arrow had reached its &quot;adult phase&quot; of making formal compatibility
promises, and that the Arrow formats were ready for wide consumption amongst
the data ecosystem.</p>
<h2>Apache Arrow, today</h2>
<p>Describing the breadth of the Arrow ecosystem today would take a full-fledged
article of its own, or perhaps even multiple Wikipedia pages. Our
<a href="https://arrow.apache.org/powered_by/">&quot;powered by&quot;</a> page can give a small taste.</p>
<p>As for the Arrow project, we will merely refer you to our official documentation:</p>
<ol>
<li>
<p><a href="https://arrow.apache.org/docs/format/index.html#">The various specifications</a>
that cater to multiple aspects of sharing Arrow data, such as
<a href="https://arrow.apache.org/docs/format/CDataInterface.html">in-process zero-copy sharing</a>
between producers and consumers that know nothing about each other, or
<a href="https://arrow.apache.org/docs/format/ADBC.html">executing database queries</a>
that efficiently return their results in the Arrow format.</p>
</li>
<li>
<p><a href="https://arrow.apache.org/docs/status.html">The implementation status page</a>
that lists the implementations developed officially under the Apache Arrow
umbrella (native software libraries for C, C++, C#, Go, Java, JavaScript,
Julia, MATLAB, Python, R, Ruby, and Rust). But keep in mind that multiple
third-party implementations exist in non-Apache projects, either open source
or proprietary.</p>
</li>
</ol>
<p>However, that is only a small part of the landscape. The Arrow project hosts
several official subprojects, such as <a href="https://arrow.apache.org/adbc">ADBC</a>
and <a href="https://arrow.apache.org/nanoarrow">nanoarrow</a>. A notable success story is
<a href="https://datafusion.apache.org/">Apache DataFusion</a>, which began as an Arrow
subproject and later <a href="https://arrow.apache.org/blog/2024/05/07/datafusion-tlp">graduated to become an independent top-level project</a>
in the Apache Software Foundation, reflecting the maturity and impact of the technology.</p>
<p>Beyond these subprojects, many third-party efforts have adopted the Arrow formats
for efficient interoperability. <a href="https://geoarrow.org/">GeoArrow</a> is an impressive
example of how building on top of existing Arrow formats and implementations can
enable groundbreaking efficiency improvements in a very non-trivial problem space.</p>
<p>It should also be noted that Arrow, as an in-memory columnar format, is often used
hand in hand with Parquet for persistent storage; as a matter of fact, most official
Parquet implementations are nowadays being developed within Arrow repositories
(C++, Rust, Go).</p>
<h2>Tomorrow</h2>
<p>The Apache Arrow community is primarily driven by consensus, and the project does
not have a formal roadmap. We will continue to welcome everyone who wishes to
participate constructively. While the specifications are stable, they still
welcome additions to cater for new use cases, as they have done in the past.</p>
<p>The Arrow implementations are actively maintained, gaining new features, bug fixes,
and performance improvements. We encourage people to contribute to their implementation
of choice, and to <a href="https://arrow.apache.org/community/">engage with us and the community</a>.</p>
<p>Now and going forward, a large amount of Arrow-related progress is happening
in the broader ecosystem of third-party tools and libraries. It is no longer
possible for us to keep track of all the work being done in those areas, but
we are proud to see that they are building on the same stable foundations that
have been laid 10 years ago.</p>]]></content><author><name>pmc</name></author><category term="arrow" /><summary type="html"><![CDATA[The Apache Arrow project was officially established and had its first git commit on February 5th 2016, and we are therefore enthusiastic to announce its 10-year anniversary! Looking back over these 10 years, the project has developed in many unforeseen ways and we believe to have delivered on our objective of providing agnostic, efficient, durable standards for the exchange of columnar data. How it started From the start, Arrow has been a joint effort between practitioners of various horizons looking to build common grounds to efficiently exchange columnar data between different libraries and systems. In this blog post, Julien Le Dem recalls how some of the founders of the Apache Parquet project participated in the early days of the Arrow design phase. The idea of Arrow as an in-memory format was meant to address the other half of the interoperability problem, the natural complement to Parquet as a persistent storage format. Apache Arrow 0.1.0 The first Arrow release, numbered 0.1.0, was tagged on October 7th 2016. It already featured the main data types that are still the bread-and-butter of most Arrow datasets, as evidenced in this Flatbuffers declaration: /// ---------------------------------------------------------------------- /// Top-level Type value, enabling extensible type-specific metadata. We can /// add new logical types to Type without breaking backwards compatibility union Type { Null, Int, FloatingPoint, Binary, Utf8, Bool, Decimal, Date, Time, Timestamp, Interval, List, Struct_, Union } The release announcement made the bold claim that &quot;the metadata and physical data representation should be fairly stable as we have spent time finalizing the details&quot;. Does that promise hold? The short answer is: yes, almost! But let us analyse that in a bit more detail: the Columnar format, for the most part, has only seen additions of new datatypes since 2016. One single breaking change occurred: Union types cannot have a top-level validity bitmap anymore. the IPC format has seen several minor evolutions of its framing and metadata format; these evolutions are encoded in the MetadataVersion field which ensures that new readers can read data produced by old writers. The single breaking change is related to the same Union validity change mentioned above. First cross-language integration tests Arrow 0.1.0 had two implementations: C++ and Java, with bindings of the former to Python. There were also no integration tests to speak of, that is, no automated assessment that the two implementations were in sync (what could go wrong?). Integration tests had to wait for November 2016 to be designed, and the first automated CI run probably occurred in December of the same year. Its results cannot be fetched anymore, so we can only assume the tests passed successfully. 🙂 From that moment, integration tests have grown to follow additions to the Arrow format, while ensuring that older data can still be read successfully. For example, the integration tests that are routinely checked against multiple implementations of Arrow have data files generated in 2019 by Arrow 0.14.1. No breaking changes... almost As mentioned above, at some point the Union type lost its top-level validity bitmap, breaking compatibility for the workloads that made use of this feature. This change was proposed back in June 2020 and enacted shortly thereafter. It elicited no controversy and doesn't seem to have caused any significant discontent among users, signaling that the feature was probably not widely used (if at all). Since then, there has been precisely zero breaking change in the Arrow Columnar and IPC formats. Apache Arrow 1.0.0 We have been extremely cautious with version numbering and waited until July 2020 before finally switching away from 0.x version numbers. This was signalling to the world that Arrow had reached its &quot;adult phase&quot; of making formal compatibility promises, and that the Arrow formats were ready for wide consumption amongst the data ecosystem. Apache Arrow, today Describing the breadth of the Arrow ecosystem today would take a full-fledged article of its own, or perhaps even multiple Wikipedia pages. Our &quot;powered by&quot; page can give a small taste. As for the Arrow project, we will merely refer you to our official documentation: The various specifications that cater to multiple aspects of sharing Arrow data, such as in-process zero-copy sharing between producers and consumers that know nothing about each other, or executing database queries that efficiently return their results in the Arrow format. The implementation status page that lists the implementations developed officially under the Apache Arrow umbrella (native software libraries for C, C++, C#, Go, Java, JavaScript, Julia, MATLAB, Python, R, Ruby, and Rust). But keep in mind that multiple third-party implementations exist in non-Apache projects, either open source or proprietary. However, that is only a small part of the landscape. The Arrow project hosts several official subprojects, such as ADBC and nanoarrow. A notable success story is Apache DataFusion, which began as an Arrow subproject and later graduated to become an independent top-level project in the Apache Software Foundation, reflecting the maturity and impact of the technology. Beyond these subprojects, many third-party efforts have adopted the Arrow formats for efficient interoperability. GeoArrow is an impressive example of how building on top of existing Arrow formats and implementations can enable groundbreaking efficiency improvements in a very non-trivial problem space. It should also be noted that Arrow, as an in-memory columnar format, is often used hand in hand with Parquet for persistent storage; as a matter of fact, most official Parquet implementations are nowadays being developed within Arrow repositories (C++, Rust, Go). Tomorrow The Apache Arrow community is primarily driven by consensus, and the project does not have a formal roadmap. We will continue to welcome everyone who wishes to participate constructively. While the specifications are stable, they still welcome additions to cater for new use cases, as they have done in the past. The Arrow implementations are actively maintained, gaining new features, bug fixes, and performance improvements. We encourage people to contribute to their implementation of choice, and to engage with us and the community. Now and going forward, a large amount of Arrow-related progress is happening in the broader ecosystem of third-party tools and libraries. It is no longer possible for us to keep track of all the work being done in those areas, but we are proud to see that they are building on the same stable foundations that have been laid 10 years ago.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" /><media:content medium="image" url="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Introducing a Security Model for Arrow</title><link href="https://arrow.apache.org/blog/2026/02/09/arrow-security-model/" rel="alternate" type="text/html" title="Introducing a Security Model for Arrow" /><published>2026-02-09T00:00:00-05:00</published><updated>2026-02-09T00:00:00-05:00</updated><id>https://arrow.apache.org/blog/2026/02/09/arrow-security-model</id><content type="html" xml:base="https://arrow.apache.org/blog/2026/02/09/arrow-security-model/"><![CDATA[<!--

-->
<p>We are thrilled to announce the official publication of a
<a href="https://arrow.apache.org/docs/dev/format/Security.html">Security Model</a> for Apache Arrow.</p>
<p>The Arrow security model covers a core subset of the Arrow specifications:
the <a href="https://arrow.apache.org/docs/dev/format/Columnar.html">Arrow Columnar Format</a>,
the <a href="https://arrow.apache.org/docs/dev/format/CDataInterface.html">Arrow C Data Interface</a> and the
<a href="https://arrow.apache.org/docs/dev/format/Columnar.html#serialization-and-interprocess-communication-ipc">Arrow IPC Format</a>.
It sets expectations and gives guidelines for handling data coming from
untrusted sources.</p>
<p>The specifications covered by the Arrow security model are building blocks for
all the other Arrow specifications, such as Flight and ADBC.</p>
<p>The ideas underlying the Arrow security model were informally shared between
Arrow maintainers and have informed decisions for years, but they were left
undocumented until now.</p>
<p>Implementation-specific security considerations, such as proper API usage and
runtime safety guarantees, will later be covered in the documentation of the
respective implementations.</p>]]></content><author><name>pmc</name></author><category term="arrow" /><category term="security" /><summary type="html"><![CDATA[We are thrilled to announce the official publication of a Security Model for Apache Arrow. The Arrow security model covers a core subset of the Arrow specifications: the Arrow Columnar Format, the Arrow C Data Interface and the Arrow IPC Format. It sets expectations and gives guidelines for handling data coming from untrusted sources. The specifications covered by the Arrow security model are building blocks for all the other Arrow specifications, such as Flight and ADBC. The ideas underlying the Arrow security model were informally shared between Arrow maintainers and have informed decisions for years, but they were left undocumented until now. Implementation-specific security considerations, such as proper API usage and runtime safety guarantees, will later be covered in the documentation of the respective implementations.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" /><media:content medium="image" url="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Apache Arrow Go 18.5.1 Release</title><link href="https://arrow.apache.org/blog/2026/01/26/arrow-go-18.5.1/" rel="alternate" type="text/html" title="Apache Arrow Go 18.5.1 Release" /><published>2026-01-26T00:00:00-05:00</published><updated>2026-01-26T00:00:00-05:00</updated><id>https://arrow.apache.org/blog/2026/01/26/arrow-go-18.5.1</id><content type="html" xml:base="https://arrow.apache.org/blog/2026/01/26/arrow-go-18.5.1/"><![CDATA[<!--

-->
<p>The Apache Arrow team is pleased to announce the v18.5.1 release of Apache Arrow Go.
This patch release covers 10 commits from 6 distinct contributors.</p>
<h2>Contributors</h2>
<div class="language-console highlighter-rouge"><div class="highlight"><pre class="highlight"><code data-lang="console"><span class="gp">$</span><span class="w"> </span>git shortlog <span class="nt">-sn</span> v18.5.0..v18.5.1
<span class="go">     6	Matt Topol
     1	Alfonso Subiotto Marqués
     1	Arnold Wakim
     1	Bryce Mecum
     1	Rok Mihevc
     1	cai.zhang
</span></code></pre></div></div>
<h2>Changelog</h2>
<h3>What's Changed</h3>
<ul>
<li>fix(internal): fix assertion on undefined behavior by @amoeba in <a href="https://github.com/apache/arrow-go/pull/602">#602</a></li>
<li>ci(benchmark): switch to new conbench instance by @rok in <a href="https://github.com/apache/arrow-go/pull/593">#593</a></li>
<li>fix(flight): make StreamChunksFromReader ctx aware and cancellation-safe by @arnoldwakim in <a href="https://github.com/apache/arrow-go/pull/615">#615</a></li>
<li>fix(parquet/variant): fix basic stringify by @zeroshade in <a href="https://github.com/apache/arrow-go/pull/624">#624</a></li>
<li>fix(parquet/pqarrow): fix partial struct panic by @zeroshade in <a href="https://github.com/apache/arrow-go/pull/630">#630</a></li>
<li>Flaky test fixes by @zeroshade in <a href="https://github.com/apache/arrow-go/pull/629">#629</a></li>
<li>ipc: clear variadicCounts in recordEncoder.reset() by @asubiotto in <a href="https://github.com/apache/arrow-go/pull/631">#631</a></li>
<li>fix(arrow/cdata): Handle errors to prevent panic by @xiaocai2333 in <a href="https://github.com/apache/arrow-go/pull/614">#614</a></li>
</ul>
<h3>New Contributors</h3>
<ul>
<li>@rok made their first contribution in <a href="https://github.com/apache/arrow-go/pull/593">#593</a></li>
<li>@asubiotto made their first contribution in <a href="https://github.com/apache/arrow-go/pull/631">#631</a></li>
<li>@xiaocai2333 made their first contribution in <a href="https://github.com/apache/arrow-go/pull/614">#614</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/apache/arrow-go/compare/v18.5.0...v18.5.1">https://github.com/apache/arrow-go/compare/v18.5.0...v18.5.1</a></p>]]></content><author><name>pmc</name></author><category term="release" /><summary type="html"><![CDATA[The Apache Arrow team is pleased to announce the v18.5.1 release of Apache Arrow Go. This patch release covers 10 commits from 6 distinct contributors. Contributors $ git shortlog -sn v18.5.0..v18.5.1 6 Matt Topol 1 Alfonso Subiotto Marqués 1 Arnold Wakim 1 Bryce Mecum 1 Rok Mihevc 1 cai.zhang Changelog What's Changed fix(internal): fix assertion on undefined behavior by @amoeba in #602 ci(benchmark): switch to new conbench instance by @rok in #593 fix(flight): make StreamChunksFromReader ctx aware and cancellation-safe by @arnoldwakim in #615 fix(parquet/variant): fix basic stringify by @zeroshade in #624 fix(parquet/pqarrow): fix partial struct panic by @zeroshade in #630 Flaky test fixes by @zeroshade in #629 ipc: clear variadicCounts in recordEncoder.reset() by @asubiotto in #631 fix(arrow/cdata): Handle errors to prevent panic by @xiaocai2333 in #614 New Contributors @rok made their first contribution in #593 @asubiotto made their first contribution in #631 @xiaocai2333 made their first contribution in #614 Full Changelog: https://github.com/apache/arrow-go/compare/v18.5.0...v18.5.1]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" /><media:content medium="image" url="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Apache Arrow 23.0.0 Release</title><link href="https://arrow.apache.org/blog/2026/01/18/23.0.0-release/" rel="alternate" type="text/html" title="Apache Arrow 23.0.0 Release" /><published>2026-01-18T00:00:00-05:00</published><updated>2026-01-18T00:00:00-05:00</updated><id>https://arrow.apache.org/blog/2026/01/18/23.0.0-release</id><content type="html" xml:base="https://arrow.apache.org/blog/2026/01/18/23.0.0-release/"><![CDATA[<!--

-->
<p>The Apache Arrow team is pleased to announce the 23.0.0 release. This release
covers over 3 months of development work and includes <a href="https://github.com/apache/arrow/milestone/71?closed=1"><strong>336 resolved
issues</strong></a> on <a href="/release/23.0.0.html#contributors"><strong>417 distinct commits</strong></a> from <a href="/release/23.0.0.html#contributors"><strong>71 distinct
contributors</strong></a>. See the <a href="https://arrow.apache.org/install/">Install Page</a> to
learn how to get the libraries for your platform.</p>
<p>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 <a href="/release/23.0.0.html#changelog">complete changelog</a>.</p>
<h2>Community</h2>
<p>As per our newly started tradition of rotating the PMC chair once a year
Antoine Pitrou was elected as the new PMC chair and VP, succeeding
Neal Richardson.</p>
<p>Thanks for your contributions and participation in the project!</p>
<h2>Arrow Flight RPC Notes</h2>
<p>An ODBC driver for Apache Arrow Flight SQL has been completed.  Currently it is not packaged for release, but <a href="https://github.com/apache/arrow/blob/apache-arrow-23.0.0/cpp/src/arrow/flight/sql/odbc/README.md">can be built from source</a>.</p>
<h2>C++ Notes</h2>
<p>The C++ standard has been updated to C++ 20 <a href="https://github.com/apache/arrow/issues/45885">GH-45885</a> and the minimum GCC to 8.</p>
<p>Some improvements to leverage C++ 20 <a href="https://github.com/apache/arrow/issues/48592">GH-48592</a>,</p>
<h3>Compute</h3>
<ul>
<li>Graceful error handling for decimal binary arithmetic and comparison instead of firing confusing assertions. <a href="https://github.com/apache/arrow/issues/35957">GH-35957</a></li>
<li>Fixed an issue where the MinMax kernel was emitting -inf/inf for all-NaN input. <a href="https://github.com/apache/arrow/issues/46063">GH-46063</a></li>
<li>Avoid ZeroCopyCastExec when casting between Binary offset types to avoid high overheads. <a href="https://github.com/apache/arrow/issues/43660">GH-43660</a></li>
<li>Enhanced type checking for hash join residual filter in Acero. <a href="https://github.com/apache/arrow/issues/48268">GH-48268</a></li>
</ul>
<h3>Format</h3>
<ul>
<li>Clarified that empty compressed buffers can omit the length header. <a href="https://github.com/apache/arrow/issues/47918">GH-47918</a></li>
</ul>
<h3>Parquet</h3>
<ul>
<li>A new setting to limit the number of rows written per page has been added. <a href="https://github.com/apache/arrow/issues/47030">GH-47030</a></li>
<li>A arrow::Result version of parquet::arrow::FileReader::Make() has been added. <a href="https://github.com/apache/arrow/issues/44810">GH-44810</a></li>
<li>Support for reading INT-encoded Decimal statistics as Arrow scalars. <a href="https://github.com/apache/arrow/issues/47955">GH-47955</a></li>
</ul>
<p>Several bug fixes including:</p>
<ul>
<li>Fixed invalid Parquet files written when dictionary encoded pages are large. <a href="https://github.com/apache/arrow/issues/47973">GH-47973</a></li>
<li>Fixed pre-1970 INT96 timestamps roundtrip. <a href="https://github.com/apache/arrow/issues/48246">GH-48246</a></li>
<li>Fixed potential crash when reading invalid Parquet data. <a href="https://github.com/apache/arrow/issues/48308">GH-48308</a></li>
<li>Added compatibility with non-compliant RLE streams. <a href="https://github.com/apache/arrow/issues/47981">GH-47981</a></li>
<li>Fixed Util &amp; Level Conversion logic on big-endian systems. <a href="https://github.com/apache/arrow/issues/48218">GH-48218</a></li>
</ul>
<h4>Encryption</h4>
<ul>
<li>Simplified nested field encryption configuration. <a href="https://github.com/apache/arrow/issues/41246">GH-41246</a></li>
<li>Improved column encryption API. <a href="https://github.com/apache/arrow/issues/48337">GH-48337</a></li>
<li>Better fuzzing support for encrypted files. <a href="https://github.com/apache/arrow/issues/48335">GH-48335</a></li>
</ul>
<h3>Miscellaneous C++ changes</h3>
<ul>
<li>Added support for CUDA 13 <a href="https://github.com/apache/arrow/issues/47677">GH-47677</a></li>
<li>Drop support for gold linker <a href="https://github.com/apache/arrow/issues/45484">GH-45484</a></li>
<li>Leverage CMake 3.25 upgrade by reducing complexity and maintenance burden on our third party dependency management <a href="https://github.com/apache/arrow/issues/48317">GH-48317</a>,
<a href="https://github.com/apache/arrow/issues/48316">GH-48316</a>, <a href="https://github.com/apache/arrow/issues/48315">GH-48315</a>, <a href="https://github.com/apache/arrow/issues/48248">GH-48248</a>,
<a href="https://github.com/apache/arrow/issues/48181">GH-48181</a>, <a href="https://github.com/apache/arrow/issues/48178">GH-48178</a>, <a href="https://github.com/apache/arrow/issues/48091">GH-48091</a>,
<a href="https://github.com/apache/arrow/issues/48074">GH-48074</a></li>
</ul>
<h2>Linux Packaging Notes</h2>
<p>Fixed a bug that the <code>parquet-devel</code> RPM package depends on
<code>parquet-glib-devel</code>.</p>
<p>See also: <a href="https://github.com/apache/arrow/issues/48044">GH-48044</a></p>
<p>CentOS 7 support has been dropped.</p>
<p>See also: <a href="https://github.com/apache/arrow/issues/40735">GH-40735</a></p>
<h2>MATLAB Notes</h2>
<p>Added support for building against MATLAB R2025b <a href="https://github.com/apache/arrow/issues/48154">GH-48154</a>.</p>
<h2>Python Notes</h2>
<h3>Compatibility notes</h3>
<ul>
<li>Deprecated <code>Array.format</code> is removed <a href="https://github.com/apache/arrow/issues/48102">GH-48102</a>.</li>
<li>Experimental tag has been removed for Arrow PyCapsule Interface
<a href="https://github.com/apache/arrow/issues/47975">GH-47975</a>.</li>
<li><code>PyWeakref_GetRef</code> has replaced the use of <code>PyWeakref_GET_OBJECT</code> to support Python 3.15
<a href="https://github.com/apache/arrow/issues/47823">GH-47823</a>.</li>
</ul>
<h3>New features</h3>
<ul>
<li>Bindings for <code>scatter</code> and <code>inverse_permutation</code>are added
<a href="https://github.com/apache/arrow/issues/48167">GH-48167</a>.</li>
<li><code>max_rows_per_page</code> argument is now exposed in <code>parquet.WriterProperties</code>
<a href="https://github.com/apache/arrow/issues/48096">GH-48096</a>.</li>
<li>External key material and rotation is enabled for individual Parquet files
<a href="https://github.com/apache/arrow/issues/31869">GH-31869</a>.</li>
</ul>
<h3>Other improvements</h3>
<ul>
<li>Nested field encryption configuration has been simplified <a href="https://github.com/apache/arrow/issues/41246">GH-41246</a>.</li>
<li>Reading INT-encoded <code>Decimal</code> statistics with <code>StatisticsAsScalars</code> is now supported
<a href="https://github.com/apache/arrow/issues/47955">GH-47955</a>.</li>
<li>Unsigned dictionary indices are now supported in pandas conversion
<a href="https://github.com/apache/arrow/issues/47022">GH-47022</a>.</li>
<li>Added code examples for compute functions <code>min</code>, <code>max</code> and <code>min_max</code>
<a href="https://github.com/apache/arrow/issues/48668">GH-48668</a>.</li>
<li>Add temporal unit checking in NumPyDtypeUnifier <a href="https://github.com/apache/arrow/issues/48625">GH-48625</a></li>
<li>Error message is improved when mixing <code>numpy.datetime64</code> values with different units
(e.g., datetime64[s] and datetime64[ms]) in a single array
<a href="https://github.com/apache/arrow/issues/48463">GH-48463</a>.</li>
<li>The source argument is now checked in <code>pyarrow.parquet.read_table</code>
<a href="https://github.com/apache/arrow/issues/47728">GH-47728</a>.</li>
</ul>
<h3>Relevant bug fixes</h3>
<ul>
<li><code>ipc.Message __repr__</code> has been corrected to use f-string <a href="https://github.com/apache/arrow/issues/48608">GH-48608</a>.</li>
<li>Failures when reading parquet files written with non-compliant RLE encoders have been fixed
in C++ with adding compatibility <a href="https://github.com/apache/arrow/issues/47981">GH-47981</a>.</li>
<li>Memory usage is now reduced when using <code>to_pandas()</code> with many extension arrays columns
<a href="https://github.com/apache/arrow/issues/47861">GH-47861</a>.</li>
<li>Missing required argument error in <code>FSSpecHandler</code> <code>delete_root_dir_contents</code> has been
fixed <a href="https://github.com/apache/arrow/issues/47559">GH-47559</a>.</li>
<li>Invalid <code>RecordBatch.from_struct_array</code> batch for sliced arrays with offset zero has been fixed
in the C++ <a href="https://github.com/apache/arrow/issues/44318">GH-44318</a>.</li>
</ul>
<h2>R Notes</h2>
<h3>Compatibility notes</h3>
<ul>
<li>GCS have been turned off by default <a href="https://github.com/apache/arrow/issues/48342">GH-48342</a>.</li>
<li>OpenSSL 1.x builds have been removed <a href="https://github.com/apache/arrow/issues/45449">GH-45449</a></li>
</ul>
<h3>Relevant bug fixes</h3>
<ul>
<li>Fixed a segfault that could be raised when concatenatig tables <a href="https://github.com/apache/arrow/issues/47000">GH-47000</a>.</li>
</ul>
<p>Several Continuous integration fixes and minor bugs have also been added to the release for a full list check the release notes.</p>
<h2>Ruby and C GLib Notes</h2>
<p>All missing compute function options have been added. So we can use
all compute functions from Ruby and C GLib. This is done by Sten
Larsson.</p>
<p>Fixed size list array support has been added.</p>
<p>See also: <a href="https://github.com/apache/arrow/issues/48362">GH-48362</a></p>
<p>Changing thread pool configuration support in Acero has been
added. This is done by Sten Larsson.</p>
<p>Duration support has been added.</p>
<p>CSV writer support has been added.</p>
<p>See also: <a href="https://github.com/apache/arrow/issues/48680">GH-48680</a></p>
<h3>Ruby</h3>
<p>Experimental Pure Ruby Apache Arrow reader implementation has been
added as <code>red-arrow-format</code> gem.</p>
<p>See also: <a href="https://github.com/apache/arrow/issues/48132">GH-48132</a></p>
<p>We'll add experimental writer implementation in the next release.</p>
<p><code>Arrow::Column#to_arrow{,_array,_chunked_array}</code> have been added. They
are for convenient.</p>
<p>See also: <a href="https://github.com/apache/arrow/issues/48292">GH-48292</a></p>
<p>Auto Apache Arrow type detection in <code>Arrow::Array.new</code> has been
improved for nested integer list case.</p>
<p>See also:</p>
<ul>
<li><a href="https://github.com/apache/arrow/issues/48478">GH-48478</a></li>
<li><a href="https://github.com/apache/arrow/issues/48481">GH-48481</a></li>
</ul>
<p><code>Arrow::FixedSizeListArray.new(data_type, values)</code> support has been
added.</p>
<p>See also: <a href="https://github.com/apache/arrow/issues/48610">GH-48610</a></p>
<h3>C GLib</h3>
<p>We use <code>Arrow-${MAJOR}.${MINOR}.{gir,typelib}</code> not
<code>Arrow-1.0.{gir,typelib}</code> for <code>.gir</code> and <code>.typelib</code> file names. It's
for co-existent multiple C GLib versions in the same system.</p>
<p>See also: <a href="https://github.com/apache/arrow/issues/48616">GH-48616</a></p>
<h2>Java, JavaScript, Go, .NET, Swift and Rust Notes</h2>
<p>The Java, JavaScript, Go, .NET, Swift and Rust projects have moved to separate
repositories outside the main Arrow <a href="https://github.com/apache/arrow">monorepo</a>.</p>
<ul>
<li>For notes on the latest release of the <a href="https://github.com/apache/arrow-java">Java
implementation</a>, see the latest <a href="https://github.com/apache/arrow-java/releases">Arrow
Java changelog</a>.</li>
<li>For notes on the latest release of the <a href="https://github.com/apache/arrow-js">JavaScript
implementation</a>, see the latest <a href="https://github.com/apache/arrow-js/releases">Arrow
JavaScript changelog</a>.</li>
<li>For notes on the latest release of the <a href="https://github.com/apache/arrow-rs">Rust
implementation</a> see the latest <a href="https://github.com/apache/arrow-rs/blob/main/CHANGELOG.md">Arrow Rust
changelog</a>.</li>
<li>For notes on the latest release of the <a href="https://github.com/apache/arrow-go">Go
implementation</a>, see the latest <a href="https://github.com/apache/arrow-go/releases">Arrow Go
changelog</a>.</li>
<li>For notes on the latest release of the <a href="https://github.com/apache/arrow-dotnet">.NET
implementation</a>, see the latest <a href="https://github.com/apache/arrow-dotnet/releases">Arrow  .NET changelog</a>.</li>
<li>For notes on the latest release of the <a href="https://github.com/apache/arrow-swift">Swift implementation</a>, see the latest <a href="https://github.com/apache/arrow-swift/releases">Arrow Swift changelog</a>.</li>
</ul>]]></content><author><name>pmc</name></author><category term="release" /><summary type="html"><![CDATA[The Apache Arrow team is pleased to announce the 23.0.0 release. This release covers over 3 months of development work and includes 336 resolved issues on 417 distinct commits from 71 distinct contributors. See the Install Page to learn how to get the libraries for your platform. 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. Community As per our newly started tradition of rotating the PMC chair once a year Antoine Pitrou was elected as the new PMC chair and VP, succeeding Neal Richardson. Thanks for your contributions and participation in the project! Arrow Flight RPC Notes An ODBC driver for Apache Arrow Flight SQL has been completed. Currently it is not packaged for release, but can be built from source. C++ Notes The C++ standard has been updated to C++ 20 GH-45885 and the minimum GCC to 8. Some improvements to leverage C++ 20 GH-48592, Compute Graceful error handling for decimal binary arithmetic and comparison instead of firing confusing assertions. GH-35957 Fixed an issue where the MinMax kernel was emitting -inf/inf for all-NaN input. GH-46063 Avoid ZeroCopyCastExec when casting between Binary offset types to avoid high overheads. GH-43660 Enhanced type checking for hash join residual filter in Acero. GH-48268 Format Clarified that empty compressed buffers can omit the length header. GH-47918 Parquet A new setting to limit the number of rows written per page has been added. GH-47030 A arrow::Result version of parquet::arrow::FileReader::Make() has been added. GH-44810 Support for reading INT-encoded Decimal statistics as Arrow scalars. GH-47955 Several bug fixes including: Fixed invalid Parquet files written when dictionary encoded pages are large. GH-47973 Fixed pre-1970 INT96 timestamps roundtrip. GH-48246 Fixed potential crash when reading invalid Parquet data. GH-48308 Added compatibility with non-compliant RLE streams. GH-47981 Fixed Util &amp; Level Conversion logic on big-endian systems. GH-48218 Encryption Simplified nested field encryption configuration. GH-41246 Improved column encryption API. GH-48337 Better fuzzing support for encrypted files. GH-48335 Miscellaneous C++ changes Added support for CUDA 13 GH-47677 Drop support for gold linker GH-45484 Leverage CMake 3.25 upgrade by reducing complexity and maintenance burden on our third party dependency management GH-48317, GH-48316, GH-48315, GH-48248, GH-48181, GH-48178, GH-48091, GH-48074 Linux Packaging Notes Fixed a bug that the parquet-devel RPM package depends on parquet-glib-devel. See also: GH-48044 CentOS 7 support has been dropped. See also: GH-40735 MATLAB Notes Added support for building against MATLAB R2025b GH-48154. Python Notes Compatibility notes Deprecated Array.format is removed GH-48102. Experimental tag has been removed for Arrow PyCapsule Interface GH-47975. PyWeakref_GetRef has replaced the use of PyWeakref_GET_OBJECT to support Python 3.15 GH-47823. New features Bindings for scatter and inverse_permutationare added GH-48167. max_rows_per_page argument is now exposed in parquet.WriterProperties GH-48096. External key material and rotation is enabled for individual Parquet files GH-31869. Other improvements Nested field encryption configuration has been simplified GH-41246. Reading INT-encoded Decimal statistics with StatisticsAsScalars is now supported GH-47955. Unsigned dictionary indices are now supported in pandas conversion GH-47022. Added code examples for compute functions min, max and min_max GH-48668. Add temporal unit checking in NumPyDtypeUnifier GH-48625 Error message is improved when mixing numpy.datetime64 values with different units (e.g., datetime64[s] and datetime64[ms]) in a single array GH-48463. The source argument is now checked in pyarrow.parquet.read_table GH-47728. Relevant bug fixes ipc.Message __repr__ has been corrected to use f-string GH-48608. Failures when reading parquet files written with non-compliant RLE encoders have been fixed in C++ with adding compatibility GH-47981. Memory usage is now reduced when using to_pandas() with many extension arrays columns GH-47861. Missing required argument error in FSSpecHandler delete_root_dir_contents has been fixed GH-47559. Invalid RecordBatch.from_struct_array batch for sliced arrays with offset zero has been fixed in the C++ GH-44318. R Notes Compatibility notes GCS have been turned off by default GH-48342. OpenSSL 1.x builds have been removed GH-45449 Relevant bug fixes Fixed a segfault that could be raised when concatenatig tables GH-47000. Several Continuous integration fixes and minor bugs have also been added to the release for a full list check the release notes. Ruby and C GLib Notes All missing compute function options have been added. So we can use all compute functions from Ruby and C GLib. This is done by Sten Larsson. Fixed size list array support has been added. See also: GH-48362 Changing thread pool configuration support in Acero has been added. This is done by Sten Larsson. Duration support has been added. CSV writer support has been added. See also: GH-48680 Ruby Experimental Pure Ruby Apache Arrow reader implementation has been added as red-arrow-format gem. See also: GH-48132 We'll add experimental writer implementation in the next release. Arrow::Column#to_arrow{,_array,_chunked_array} have been added. They are for convenient. See also: GH-48292 Auto Apache Arrow type detection in Arrow::Array.new has been improved for nested integer list case. See also: GH-48478 GH-48481 Arrow::FixedSizeListArray.new(data_type, values) support has been added. See also: GH-48610 C GLib We use Arrow-${MAJOR}.${MINOR}.{gir,typelib} not Arrow-1.0.{gir,typelib} for .gir and .typelib file names. It's for co-existent multiple C GLib versions in the same system. See also: GH-48616 Java, JavaScript, Go, .NET, Swift and Rust Notes The Java, JavaScript, Go, .NET, Swift and Rust projects have moved to separate repositories outside the main Arrow monorepo. For notes on the latest release of the Java implementation, see the latest Arrow Java changelog. For notes on the latest release of the JavaScript implementation, see the latest Arrow JavaScript changelog. For notes on the latest release of the Rust implementation see the latest Arrow Rust changelog. For notes on the latest release of the Go implementation, see the latest Arrow Go changelog. For notes on the latest release of the .NET implementation, see the latest Arrow .NET changelog. For notes on the latest release of the Swift implementation, see the latest Arrow Swift changelog.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" /><media:content medium="image" url="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>