alamb commented on code in PR #817:
URL: https://github.com/apache/arrow-site/pull/817#discussion_r4104649045
##########
_posts/2026-09-10-arrow-rs-60.0.0.md:
##########
@@ -0,0 +1,352 @@
+---
+layout: post
+title: "Apache Arrow Rust 60.0.0 Release"
+date: "2026-09-10 00:00:00"
+author: pmc
Review Comment:
I suggest putting your own name here (maybe in addition to pmc), as I think
you should get credit as the author
##########
_posts/2026-09-10-arrow-rs-60.0.0.md:
##########
@@ -0,0 +1,352 @@
+---
+layout: post
+title: "Apache Arrow Rust 60.0.0 Release"
+date: "2026-09-10 00:00:00"
+author: pmc
+categories: [release]
+---
+<!--
+{% comment %}
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to you under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+{% endcomment %}
+-->
+
+The Apache Arrow team is pleased to announce that the v60.0.0 release of
Apache Arrow
+Rust is now available on crates.io ([arrow] and [parquet]) and as [source
download].
+
+[arrow]: https://crates.io/crates/arrow
+[parquet]: https://crates.io/crates/parquet
+[source download]:
https://dist.apache.org/repos/dist/release/arrow/arrow-rs-60.0.0
+
+See the [60.0.0 changelog] for a full list of changes.
+
+[60.0.0 changelog]: https://github.com/apache/arrow-rs/blob/60.0.0/CHANGELOG.md
+
+## Highlights
+
+This release includes new Parquet encoding support, a sustained effort to
remove
+panics from the codebase, a large number of kernel performance improvements,
and
+many bug fixes across decimals, take/filter, and FFI.
+
+MSRV is bumped to 1.88,
+`rand` upgraded to 0.10, `object_store` to 0.14.1, and several long-deprecated
+items have been removed. See the [60.0.0 changelog] for the full breaking
+changes list.
+
+## New Features
+
+### Parquet ALP Encoder/Decoder Support
+
+[@sdf-jkl] added support for the [Adaptive Lossless floating-Point (ALP)]
+encoding in Parquet ([#9372]). ALP is a high-performance encoding for
+floating-point columns that improves both compression ratios and read
throughput.
+This makes arrow-rs one of the first Rust implementations to support ALP,
+keeping the [parquet] crate aligned with the latest Parquet specification.
+
+[Adaptive Lossless floating-Point (ALP)]: https://github.com/cwida/ALP
+[@sdf-jkl]: https://github.com/sdf-jkl
+[#9372]: https://github.com/apache/arrow-rs/pull/9372
+
+### Parquet Page Index Improvements
+
+[@etseidl] made several improvements to Parquet page index handling: a new
+`PageIndex` struct encapsulating column and offset indexes ([#10719]), new
Review Comment:
Can we link to the docs.rs pages for these types?
##########
_posts/2026-09-10-arrow-rs-60.0.0.md:
##########
@@ -0,0 +1,352 @@
+---
+layout: post
+title: "Apache Arrow Rust 60.0.0 Release"
+date: "2026-09-10 00:00:00"
+author: pmc
+categories: [release]
+---
+<!--
+{% comment %}
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to you under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+{% endcomment %}
+-->
+
+The Apache Arrow team is pleased to announce that the v60.0.0 release of
Apache Arrow
+Rust is now available on crates.io ([arrow] and [parquet]) and as [source
download].
+
+[arrow]: https://crates.io/crates/arrow
+[parquet]: https://crates.io/crates/parquet
+[source download]:
https://dist.apache.org/repos/dist/release/arrow/arrow-rs-60.0.0
+
+See the [60.0.0 changelog] for a full list of changes.
+
+[60.0.0 changelog]: https://github.com/apache/arrow-rs/blob/60.0.0/CHANGELOG.md
+
+## Highlights
+
+This release includes new Parquet encoding support, a sustained effort to
remove
+panics from the codebase, a large number of kernel performance improvements,
and
+many bug fixes across decimals, take/filter, and FFI.
+
+MSRV is bumped to 1.88,
+`rand` upgraded to 0.10, `object_store` to 0.14.1, and several long-deprecated
+items have been removed. See the [60.0.0 changelog] for the full breaking
+changes list.
+
+## New Features
+
+### Parquet ALP Encoder/Decoder Support
+
+[@sdf-jkl] added support for the [Adaptive Lossless floating-Point (ALP)]
+encoding in Parquet ([#9372]). ALP is a high-performance encoding for
+floating-point columns that improves both compression ratios and read
throughput.
+This makes arrow-rs one of the first Rust implementations to support ALP,
+keeping the [parquet] crate aligned with the latest Parquet specification.
+
+[Adaptive Lossless floating-Point (ALP)]: https://github.com/cwida/ALP
Review Comment:
I would like to offer an alternate URL, somewhat selfishly, but i think
linking to the parquet site is good
```suggestion
[Adaptive Lossless floating-Point (ALP)]:
https://parquet.apache.org/blog/2026/09/22/alp-adaptive-lossless-floating-point-encoding-in-apache-parquet/
```
##########
_posts/2026-09-10-arrow-rs-60.0.0.md:
##########
@@ -0,0 +1,352 @@
+---
+layout: post
+title: "Apache Arrow Rust 60.0.0 Release"
+date: "2026-09-10 00:00:00"
+author: pmc
+categories: [release]
+---
+<!--
+{% comment %}
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to you under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+{% endcomment %}
+-->
+
+The Apache Arrow team is pleased to announce that the v60.0.0 release of
Apache Arrow
+Rust is now available on crates.io ([arrow] and [parquet]) and as [source
download].
+
+[arrow]: https://crates.io/crates/arrow
+[parquet]: https://crates.io/crates/parquet
+[source download]:
https://dist.apache.org/repos/dist/release/arrow/arrow-rs-60.0.0
+
+See the [60.0.0 changelog] for a full list of changes.
+
+[60.0.0 changelog]: https://github.com/apache/arrow-rs/blob/60.0.0/CHANGELOG.md
+
+## Highlights
+
+This release includes new Parquet encoding support, a sustained effort to
remove
+panics from the codebase, a large number of kernel performance improvements,
and
+many bug fixes across decimals, take/filter, and FFI.
+
+MSRV is bumped to 1.88,
+`rand` upgraded to 0.10, `object_store` to 0.14.1, and several long-deprecated
+items have been removed. See the [60.0.0 changelog] for the full breaking
+changes list.
+
+## New Features
+
+### Parquet ALP Encoder/Decoder Support
+
+[@sdf-jkl] added support for the [Adaptive Lossless floating-Point (ALP)]
Review Comment:
fyi @sdf-jkl
##########
_posts/2026-09-10-arrow-rs-60.0.0.md:
##########
@@ -0,0 +1,352 @@
+---
+layout: post
+title: "Apache Arrow Rust 60.0.0 Release"
+date: "2026-09-10 00:00:00"
+author: pmc
+categories: [release]
+---
+<!--
+{% comment %}
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to you under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+{% endcomment %}
+-->
+
+The Apache Arrow team is pleased to announce that the v60.0.0 release of
Apache Arrow
+Rust is now available on crates.io ([arrow] and [parquet]) and as [source
download].
+
+[arrow]: https://crates.io/crates/arrow
+[parquet]: https://crates.io/crates/parquet
+[source download]:
https://dist.apache.org/repos/dist/release/arrow/arrow-rs-60.0.0
+
+See the [60.0.0 changelog] for a full list of changes.
+
+[60.0.0 changelog]: https://github.com/apache/arrow-rs/blob/60.0.0/CHANGELOG.md
+
+## Highlights
+
+This release includes new Parquet encoding support, a sustained effort to
remove
+panics from the codebase, a large number of kernel performance improvements,
and
+many bug fixes across decimals, take/filter, and FFI.
+
+MSRV is bumped to 1.88,
+`rand` upgraded to 0.10, `object_store` to 0.14.1, and several long-deprecated
+items have been removed. See the [60.0.0 changelog] for the full breaking
+changes list.
+
+## New Features
+
+### Parquet ALP Encoder/Decoder Support
+
+[@sdf-jkl] added support for the [Adaptive Lossless floating-Point (ALP)]
+encoding in Parquet ([#9372]). ALP is a high-performance encoding for
+floating-point columns that improves both compression ratios and read
throughput.
+This makes arrow-rs one of the first Rust implementations to support ALP,
+keeping the [parquet] crate aligned with the latest Parquet specification.
+
+[Adaptive Lossless floating-Point (ALP)]: https://github.com/cwida/ALP
+[@sdf-jkl]: https://github.com/sdf-jkl
+[#9372]: https://github.com/apache/arrow-rs/pull/9372
+
+### Parquet Page Index Improvements
+
+[@etseidl] made several improvements to Parquet page index handling: a new
+`PageIndex` struct encapsulating column and offset indexes ([#10719]), new
+`PageIndexBuilder` and `PageIndexProvider` types ([#10842]), and page index
+decoders are now public ([#10899]).
+
+[@etseidl]: https://github.com/etseidl
+[#10719]: https://github.com/apache/arrow-rs/pull/10719
+[#10842]: https://github.com/apache/arrow-rs/pull/10842
+[#10899]: https://github.com/apache/arrow-rs/pull/10899
+
+### Parquet NDV Statistics, FILE Logical Type, and IEEE 754 Total Order
+
+[@Rich-T-kid] implemented writing num distinct values (NDV) statistics in the
+Parquet writer ([#10654]) and added row-group-level distinct counts to
+`StatisticsConverter` ([#10652]). Query engines use these to make better
+planning decisions such as join strategy selection and filter selectivity
+estimates.
+
+[@brkyvz] added support for the `FILE` logical type ([#10109]). [@etseidl]
+implemented [PARQUET-2249] IEEE 754 total order for floating-point comparisons
+([#9619]) and the corresponding `INT96` timestamp `ColumnOrder` ([#10106]).
+[@etseidl] also removed the previous limit of 32,768 row groups per file
+([#10149]).
+
+[@Rich-T-kid]: https://github.com/Rich-T-kid
+[@brkyvz]: https://github.com/brkyvz
+[PARQUET-2249]: https://issues.apache.org/jira/browse/PARQUET-2249
+[#10654]: https://github.com/apache/arrow-rs/pull/10654
+[#10652]: https://github.com/apache/arrow-rs/pull/10652
+[#10109]: https://github.com/apache/arrow-rs/pull/10109
+[#9619]: https://github.com/apache/arrow-rs/pull/9619
+[#10106]: https://github.com/apache/arrow-rs/pull/10106
+[#10149]: https://github.com/apache/arrow-rs/pull/10149
+
+### New `arrow-cmp` Crate
+
+[@Rich-T-kid] introduced the [`arrow-cmp`] crate ([#10325]), splitting
+comparison kernel logic into its own focused crate. This makes it possible to
+depend on Arrow comparison operations without pulling in the full `arrow`
crate.
+
+[`arrow-cmp`]: https://crates.io/crates/arrow-cmp
+[#10325]: https://github.com/apache/arrow-rs/pull/10325
+
+## Panic Elimination
+
+A lot of work went into converting panics into proper `Result` returns this
+release. [@emilk] fixed `try_` functions still panicking in edge cases
([#10730],
+[#10755]) and removed panics from `GenericByteArray::from_iter_values`
([#10729]).
+[@bit2swaz] replaced panics with errors in IPC schema and footer parsing
+([#10647], [#10744]) and closed an FFI `Drop` soundness hole ([#10431]).
+[@Rich-T-kid] fixed a potential use-after-free in `Buffer::shrink_to_fit`
([#10932])
+and converted `MutableBuffer` panicking callsites to fallible methods
([#10641],
+[#10317]). [@okhsunrog] made `interleave`/`concat` return errors on dictionary
key
+overflow ([#10675]). [@ranflarion] converted a Parquet buffer push panic into
an
+error ([#10564]) and [@dhruvxvaishnav] did the same for invalid dictionary
index
+bit widths ([#10725]).
+
+[@emilk]: https://github.com/emilk
+[@bit2swaz]: https://github.com/bit2swaz
+[@okhsunrog]: https://github.com/okhsunrog
+[@ranflarion]: https://github.com/ranflarion
+[@dhruvxvaishnav]: https://github.com/dhruvxvaishnav
+[#10730]: https://github.com/apache/arrow-rs/pull/10730
+[#10755]: https://github.com/apache/arrow-rs/pull/10755
+[#10729]: https://github.com/apache/arrow-rs/pull/10729
+[#10647]: https://github.com/apache/arrow-rs/pull/10647
+[#10744]: https://github.com/apache/arrow-rs/pull/10744
+[#10431]: https://github.com/apache/arrow-rs/pull/10431
+[#10932]: https://github.com/apache/arrow-rs/pull/10932
+[#10641]: https://github.com/apache/arrow-rs/pull/10641
+[#10317]: https://github.com/apache/arrow-rs/pull/10317
+[#10675]: https://github.com/apache/arrow-rs/pull/10675
+[#10564]: https://github.com/apache/arrow-rs/pull/10564
+[#10725]: https://github.com/apache/arrow-rs/pull/10725
+
+## Performance Improvements
+
+This release has a large number of performance improvements across kernels,
+casting, and Parquet I/O.
+
+[@Rich-T-kid] made several take/filter kernel improvements: faster `take` on
+`List<T>` by avoiding bounds checks ([#10812]), `FixedSizeList` ([#10441]),
+run-end encoded arrays ([#10325]), boolean and null buffers ([#10813]), and
faster
+`filter` on `FixedSizeBinary` ([#10993]). [@Rich-T-kid] also optimized
+`NullBuffer::expand` for aligned and non-aligned counts ([#10976], [#10980])
+and sped up plain Parquet string column reads into dictionary arrays
([#10614]).
+
+[@neilconway] contributed a series of decimal speedups: scanning integer and
+fractional digits in separate loops ([#10974]), counting digits to skip
+precision checks ([#10998]), general decimal-from-string optimizations
([#10668]),
+and formatting `i256` without `num-bigint` ([#11000]).
+
+[@alamb] reduced binary size by about 2% by monomorphizing `PrimitiveArray to
+ArrayData` conversion and `Debug` formatting helpers ([#10893], [#10890]).
+[@adriangb] sped up `DELTA_BYTE_ARRAY` shared prefix scanning a block at a
+time ([#10549]) and removed redundant copies in Parquet mask-backed
+intersection/union ([#10446]).
+
+[@YUZHEthefool] improved `rank` performance for
+byte-view arrays via prefix key caching ([#10605]). [@giladkl] sped up
+equality/inequality comparisons of byte-view arrays against short scalars
+([#10689]). [@cakeni] replaced multiple `BufferBuilder` usages with `Vec`
+across `concat_elements`, `take_run`, `substring`, and other kernels
([#10629]-[#10634]).
+[@kowanietz] did the same for primitive unary operations ([#10783]) and
+fixed-size binary take ([#10773]). [@haohuaijin] fixed in-place bitwise ops
+corrupting bits outside the requested range ([#10444]) and cached Mask reads
+crossing unloaded sparse pages ([#10735]).
+
+[@neilconway]: https://github.com/neilconway
+[@haohuaijin]: https://github.com/haohuaijin
+[@alamb]: https://github.com/alamb
+[@adriangb]: https://github.com/adriangb
+[@YUZHEthefool]: https://github.com/YUZHEthefool
+[@giladkl]: https://github.com/giladkl
+[@cakeni]: https://github.com/cakeni
+[@kowanietz]: https://github.com/kowanietz
+[#10812]: https://github.com/apache/arrow-rs/pull/10812
+[#10441]: https://github.com/apache/arrow-rs/pull/10441
+[#10813]: https://github.com/apache/arrow-rs/pull/10813
+[#10993]: https://github.com/apache/arrow-rs/pull/10993
+[#10976]: https://github.com/apache/arrow-rs/pull/10976
+[#10980]: https://github.com/apache/arrow-rs/pull/10980
+[#10614]: https://github.com/apache/arrow-rs/pull/10614
+[#10974]: https://github.com/apache/arrow-rs/pull/10974
+[#10998]: https://github.com/apache/arrow-rs/pull/10998
+[#10668]: https://github.com/apache/arrow-rs/pull/10668
+[#11000]: https://github.com/apache/arrow-rs/pull/11000
+[#10893]: https://github.com/apache/arrow-rs/pull/10893
+[#10890]: https://github.com/apache/arrow-rs/pull/10890
+[#10549]: https://github.com/apache/arrow-rs/pull/10549
+[#10446]: https://github.com/apache/arrow-rs/pull/10446
+[#10605]: https://github.com/apache/arrow-rs/pull/10605
+[#10689]: https://github.com/apache/arrow-rs/pull/10689
+[#10629]: https://github.com/apache/arrow-rs/pull/10629
+[#10634]: https://github.com/apache/arrow-rs/pull/10634
+[#10783]: https://github.com/apache/arrow-rs/pull/10783
+[#10773]: https://github.com/apache/arrow-rs/pull/10773
+
+## Bug Fixes
+
+[@neilconway] fixed a cluster of decimal bugs including incorrect `Decimal256`
+casting to signed integers ([#10857]), wrong min/max statistics for
`BYTE_ARRAY`
+decimals ([#10861]), mismatched scales in `make_comparator` ([#10864]),
+formatting bugs ([#10869]), and a spurious assert when `scale == precision`
+([#10875]).
+
+[@yongster] fixed `take` for null indices in dense union and run-end encoded
+arrays ([#10909]).
+
+[@1fanwang] and [@tpoterba] fixed `take` and `interleave` on zero-width
+`FixedSizeListArray` ([#10915], [#11026]).
+
+[@jaideeppyne] fixed struct `ArrayData` slicing double-counting the offset
+([#10835], [#10934]). [@linhongyu510] fixed struct null validation not
+accounting for parent offsets ([#10970]).
+
+[@PlenoraETL] made the IPC reader return an error for a `DictionaryBatch`
+missing its data instead of silently producing wrong results ([#11020]).
+[@bit2swaz] made `FFI_ArrowSchema::with_metadata` `unsafe` to close a
+soundness gap ([#10764]).
+
+[@adriangb] fixed `DELTA_BYTE_ARRAY` deduplication for values larger than
+the page size limit ([#10505]).
+
+[@yongster]: https://github.com/yongster
+[@1fanwang]: https://github.com/1fanwang
+[@tpoterba]: https://github.com/tpoterba
+[@jaideeppyne]: https://github.com/jaideeppyne
+[@linhongyu510]: https://github.com/linhongyu510
+[@PlenoraETL]: https://github.com/PlenoraETL
+[#10444]: https://github.com/apache/arrow-rs/pull/10444
+[#10735]: https://github.com/apache/arrow-rs/pull/10735
+
+[#10857]: https://github.com/apache/arrow-rs/pull/10857
+[#10861]: https://github.com/apache/arrow-rs/pull/10861
+[#10864]: https://github.com/apache/arrow-rs/pull/10864
+[#10869]: https://github.com/apache/arrow-rs/pull/10869
+[#10875]: https://github.com/apache/arrow-rs/pull/10875
+[#10909]: https://github.com/apache/arrow-rs/pull/10909
+[#10915]: https://github.com/apache/arrow-rs/pull/10915
+[#11026]: https://github.com/apache/arrow-rs/pull/11026
+[#10835]: https://github.com/apache/arrow-rs/pull/10835
+[#10934]: https://github.com/apache/arrow-rs/pull/10934
+[#10970]: https://github.com/apache/arrow-rs/pull/10970
+[#11020]: https://github.com/apache/arrow-rs/pull/11020
+[#10764]: https://github.com/apache/arrow-rs/pull/10764
+[#10505]: https://github.com/apache/arrow-rs/pull/10505
+
+## Other Notable Changes
+
+- [@adamreeve] added round-trip support for `Dictionary(_,
Utf8View/BinaryView)`
+ columns in Parquet ([#10831])
+- [@ranflarion] improved Parquet bloom filters: populate from the dictionary
+ while a column is dictionary encoded ([#10966]) and added a writer option to
+ skip bloom filters for all-dictionary column chunks ([#10963])
+- [@haohuaijin] added row-group-local `RowSelection` support to the push
+ decoder ([#10702])
+- [@1fanwang] added `Utf8View` and `BinaryView` support to `substring`
([#10672])
+
+[@adamreeve]: https://github.com/adamreeve
+[#10831]: https://github.com/apache/arrow-rs/pull/10831
+[#10966]: https://github.com/apache/arrow-rs/pull/10966
+[#10963]: https://github.com/apache/arrow-rs/pull/10963
+[#10702]: https://github.com/apache/arrow-rs/pull/10702
+[#10672]: https://github.com/apache/arrow-rs/pull/10672
+
+## Thanks to Our Contributors
+
+```console
+$ git shortlog -sn 59.2.0..60.0.0
+ 38 Richard Baah
Review Comment:
nice work 🥇
##########
_posts/2026-09-10-arrow-rs-60.0.0.md:
##########
@@ -0,0 +1,352 @@
+---
+layout: post
+title: "Apache Arrow Rust 60.0.0 Release"
+date: "2026-09-10 00:00:00"
+author: pmc
+categories: [release]
+---
+<!--
+{% comment %}
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to you under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+{% endcomment %}
+-->
+
+The Apache Arrow team is pleased to announce that the v60.0.0 release of
Apache Arrow
+Rust is now available on crates.io ([arrow] and [parquet]) and as [source
download].
+
+[arrow]: https://crates.io/crates/arrow
+[parquet]: https://crates.io/crates/parquet
+[source download]:
https://dist.apache.org/repos/dist/release/arrow/arrow-rs-60.0.0
+
+See the [60.0.0 changelog] for a full list of changes.
+
+[60.0.0 changelog]: https://github.com/apache/arrow-rs/blob/60.0.0/CHANGELOG.md
+
+## Highlights
+
+This release includes new Parquet encoding support, a sustained effort to
remove
+panics from the codebase, a large number of kernel performance improvements,
and
+many bug fixes across decimals, take/filter, and FFI.
+
+MSRV is bumped to 1.88,
+`rand` upgraded to 0.10, `object_store` to 0.14.1, and several long-deprecated
+items have been removed. See the [60.0.0 changelog] for the full breaking
+changes list.
+
+## New Features
+
+### Parquet ALP Encoder/Decoder Support
+
+[@sdf-jkl] added support for the [Adaptive Lossless floating-Point (ALP)]
+encoding in Parquet ([#9372]). ALP is a high-performance encoding for
+floating-point columns that improves both compression ratios and read
throughput.
+This makes arrow-rs one of the first Rust implementations to support ALP,
+keeping the [parquet] crate aligned with the latest Parquet specification.
+
+[Adaptive Lossless floating-Point (ALP)]: https://github.com/cwida/ALP
+[@sdf-jkl]: https://github.com/sdf-jkl
+[#9372]: https://github.com/apache/arrow-rs/pull/9372
+
+### Parquet Page Index Improvements
+
+[@etseidl] made several improvements to Parquet page index handling: a new
+`PageIndex` struct encapsulating column and offset indexes ([#10719]), new
+`PageIndexBuilder` and `PageIndexProvider` types ([#10842]), and page index
+decoders are now public ([#10899]).
+
+[@etseidl]: https://github.com/etseidl
+[#10719]: https://github.com/apache/arrow-rs/pull/10719
+[#10842]: https://github.com/apache/arrow-rs/pull/10842
+[#10899]: https://github.com/apache/arrow-rs/pull/10899
+
+### Parquet NDV Statistics, FILE Logical Type, and IEEE 754 Total Order
+
+[@Rich-T-kid] implemented writing num distinct values (NDV) statistics in the
+Parquet writer ([#10654]) and added row-group-level distinct counts to
+`StatisticsConverter` ([#10652]). Query engines use these to make better
+planning decisions such as join strategy selection and filter selectivity
+estimates.
+
+[@brkyvz] added support for the `FILE` logical type ([#10109]). [@etseidl]
+implemented [PARQUET-2249] IEEE 754 total order for floating-point comparisons
+([#9619]) and the corresponding `INT96` timestamp `ColumnOrder` ([#10106]).
+[@etseidl] also removed the previous limit of 32,768 row groups per file
+([#10149]).
+
+[@Rich-T-kid]: https://github.com/Rich-T-kid
+[@brkyvz]: https://github.com/brkyvz
+[PARQUET-2249]: https://issues.apache.org/jira/browse/PARQUET-2249
+[#10654]: https://github.com/apache/arrow-rs/pull/10654
+[#10652]: https://github.com/apache/arrow-rs/pull/10652
+[#10109]: https://github.com/apache/arrow-rs/pull/10109
+[#9619]: https://github.com/apache/arrow-rs/pull/9619
+[#10106]: https://github.com/apache/arrow-rs/pull/10106
+[#10149]: https://github.com/apache/arrow-rs/pull/10149
+
+### New `arrow-cmp` Crate
+
+[@Rich-T-kid] introduced the [`arrow-cmp`] crate ([#10325]), splitting
+comparison kernel logic into its own focused crate. This makes it possible to
+depend on Arrow comparison operations without pulling in the full `arrow`
crate.
+
+[`arrow-cmp`]: https://crates.io/crates/arrow-cmp
+[#10325]: https://github.com/apache/arrow-rs/pull/10325
+
+## Panic Elimination
+
+A lot of work went into converting panics into proper `Result` returns this
+release. [@emilk] fixed `try_` functions still panicking in edge cases
([#10730],
+[#10755]) and removed panics from `GenericByteArray::from_iter_values`
([#10729]).
+[@bit2swaz] replaced panics with errors in IPC schema and footer parsing
+([#10647], [#10744]) and closed an FFI `Drop` soundness hole ([#10431]).
+[@Rich-T-kid] fixed a potential use-after-free in `Buffer::shrink_to_fit`
([#10932])
+and converted `MutableBuffer` panicking callsites to fallible methods
([#10641],
+[#10317]). [@okhsunrog] made `interleave`/`concat` return errors on dictionary
key
+overflow ([#10675]). [@ranflarion] converted a Parquet buffer push panic into
an
+error ([#10564]) and [@dhruvxvaishnav] did the same for invalid dictionary
index
+bit widths ([#10725]).
+
+[@emilk]: https://github.com/emilk
+[@bit2swaz]: https://github.com/bit2swaz
+[@okhsunrog]: https://github.com/okhsunrog
+[@ranflarion]: https://github.com/ranflarion
+[@dhruvxvaishnav]: https://github.com/dhruvxvaishnav
+[#10730]: https://github.com/apache/arrow-rs/pull/10730
+[#10755]: https://github.com/apache/arrow-rs/pull/10755
+[#10729]: https://github.com/apache/arrow-rs/pull/10729
+[#10647]: https://github.com/apache/arrow-rs/pull/10647
+[#10744]: https://github.com/apache/arrow-rs/pull/10744
+[#10431]: https://github.com/apache/arrow-rs/pull/10431
+[#10932]: https://github.com/apache/arrow-rs/pull/10932
+[#10641]: https://github.com/apache/arrow-rs/pull/10641
+[#10317]: https://github.com/apache/arrow-rs/pull/10317
+[#10675]: https://github.com/apache/arrow-rs/pull/10675
+[#10564]: https://github.com/apache/arrow-rs/pull/10564
+[#10725]: https://github.com/apache/arrow-rs/pull/10725
+
+## Performance Improvements
+
+This release has a large number of performance improvements across kernels,
+casting, and Parquet I/O.
+
+[@Rich-T-kid] made several take/filter kernel improvements: faster `take` on
Review Comment:
I might help to summarize these speedups with numbers or some other summary
-- the specific list is impressive, but likely will be hard to understand the
implications for users of the arrow crate (other than just 'it is faster')
##########
_posts/2026-09-10-arrow-rs-60.0.0.md:
##########
@@ -0,0 +1,352 @@
+---
+layout: post
+title: "Apache Arrow Rust 60.0.0 Release"
+date: "2026-09-10 00:00:00"
+author: pmc
+categories: [release]
+---
+<!--
+{% comment %}
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to you under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+{% endcomment %}
+-->
+
+The Apache Arrow team is pleased to announce that the v60.0.0 release of
Apache Arrow
+Rust is now available on crates.io ([arrow] and [parquet]) and as [source
download].
+
+[arrow]: https://crates.io/crates/arrow
+[parquet]: https://crates.io/crates/parquet
+[source download]:
https://dist.apache.org/repos/dist/release/arrow/arrow-rs-60.0.0
+
+See the [60.0.0 changelog] for a full list of changes.
+
+[60.0.0 changelog]: https://github.com/apache/arrow-rs/blob/60.0.0/CHANGELOG.md
+
+## Highlights
+
+This release includes new Parquet encoding support, a sustained effort to
remove
+panics from the codebase, a large number of kernel performance improvements,
and
+many bug fixes across decimals, take/filter, and FFI.
+
+MSRV is bumped to 1.88,
+`rand` upgraded to 0.10, `object_store` to 0.14.1, and several long-deprecated
+items have been removed. See the [60.0.0 changelog] for the full breaking
+changes list.
+
+## New Features
+
+### Parquet ALP Encoder/Decoder Support
+
+[@sdf-jkl] added support for the [Adaptive Lossless floating-Point (ALP)]
+encoding in Parquet ([#9372]). ALP is a high-performance encoding for
+floating-point columns that improves both compression ratios and read
throughput.
+This makes arrow-rs one of the first Rust implementations to support ALP,
+keeping the [parquet] crate aligned with the latest Parquet specification.
+
+[Adaptive Lossless floating-Point (ALP)]: https://github.com/cwida/ALP
+[@sdf-jkl]: https://github.com/sdf-jkl
+[#9372]: https://github.com/apache/arrow-rs/pull/9372
+
+### Parquet Page Index Improvements
+
+[@etseidl] made several improvements to Parquet page index handling: a new
+`PageIndex` struct encapsulating column and offset indexes ([#10719]), new
+`PageIndexBuilder` and `PageIndexProvider` types ([#10842]), and page index
+decoders are now public ([#10899]).
Review Comment:
I think another major usecase for this is providing external (e.g. cached)
PageIndexes -- it might be nice to mention that. Maybe @etseidl can let me
know anything else I may have missed
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]