This is an automated email from the ASF dual-hosted git repository.
Jefffrey pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-rs.git
The following commit(s) were added to refs/heads/main by this push:
new 1c1134e6f4 Document platform endianness support (#11056)
1c1134e6f4 is described below
commit 1c1134e6f4d7cf2e4f04b1ef7a72afadfcbad414
Author: Kosta Tarasov <[email protected]>
AuthorDate: Tue Sep 15 00:55:49 2026 -0400
Document platform endianness support (#11056)
# Which issue does this PR close?
Closes #6917.
# Rationale for this change
The endianness support and testing expectations discussed in #6917 are
not currently stated in the repository's user documentation. Users
should be able to find these limitations when choosing a crate.
# What changes are included in this PR?
Add a Platform Support section to the root README and the API landing
page of every published library crate. It states that only little-endian
platforms are officially supported and tested in CI, while big-endian
platforms are untested and may not work correctly. Big-endian fixes are
welcome on a best-effort basis, with no compatibility guarantee.
Each crate includes the full paragraph because it can be consumed
independently.
# Are these changes tested?
Documentation only. `cargo fmt --all -- --check` and `git diff --check`
pass. Verified that the root README and all 25 published library crates
contain identical policy wording.
# Are there any user-facing changes?
Documents the platform support and testing expectations. No API or
runtime behavior changes.
Co-authored-by: Jeffrey Vo <[email protected]>
---
README.md | 7 +++++++
arrow-arith/src/lib.rs | 7 +++++++
arrow-array/src/lib.rs | 7 +++++++
arrow-avro/src/lib.rs | 7 +++++++
arrow-buffer/src/lib.rs | 7 +++++++
arrow-cast/src/lib.rs | 7 +++++++
arrow-cmp/src/lib.rs | 7 +++++++
arrow-csv/src/lib.rs | 7 +++++++
arrow-data/src/lib.rs | 7 +++++++
arrow-flight/src/lib.rs | 7 +++++++
arrow-integration-test/src/lib.rs | 7 +++++++
arrow-ipc/src/lib.rs | 7 +++++++
arrow-json/src/lib.rs | 7 +++++++
arrow-ord/src/lib.rs | 7 +++++++
arrow-pyarrow/src/lib.rs | 7 +++++++
arrow-row/src/lib.rs | 7 +++++++
arrow-schema/src/lib.rs | 7 +++++++
arrow-select/src/lib.rs | 7 +++++++
arrow-string/src/lib.rs | 7 +++++++
arrow/src/lib.rs | 7 +++++++
parquet-geospatial/src/lib.rs | 7 +++++++
parquet-variant-compute/src/lib.rs | 7 +++++++
parquet-variant-json/src/lib.rs | 7 +++++++
parquet-variant/src/lib.rs | 7 +++++++
parquet/src/lib.rs | 7 +++++++
parquet_derive/src/lib.rs | 7 +++++++
26 files changed, 182 insertions(+)
diff --git a/README.md b/README.md
index 7ed7992972..3b329b3458 100644
--- a/README.md
+++ b/README.md
@@ -111,6 +111,13 @@ arrow-rs and parquet are built and tested with stable
Rust, and will keep a roll
Note: If a Rust hotfix is released for the current MSRV, the MSRV will be
updated to the specific minor version that includes all applicable hotfixes
preceding other policies.
+### Platform Support
+
+Only little-endian platforms are officially supported and tested in CI.
+Big-endian platforms are not tested in CI and may not work correctly.
+Fixes for big-endian platforms are welcome and handled on a best-effort basis,
+but compatibility is not guaranteed.
+
### Guidelines for `panic` vs `Result`
In general, use panics for bad states that are unreachable, unrecoverable or
harmful.
diff --git a/arrow-arith/src/lib.rs b/arrow-arith/src/lib.rs
index 035519ed99..ed7b516bdb 100644
--- a/arrow-arith/src/lib.rs
+++ b/arrow-arith/src/lib.rs
@@ -16,6 +16,13 @@
// under the License.
//! Arrow arithmetic and aggregation kernels
+//!
+//! # Platform Support
+//!
+//! Only little-endian platforms are officially supported and tested in CI.
+//! Big-endian platforms are not tested in CI and may not work correctly.
+//! Fixes for big-endian platforms are welcome and handled on a best-effort
basis,
+//! but compatibility is not guaranteed.
#![doc(
html_logo_url =
"https://arrow.apache.org/img/arrow-logo_chevrons_black-txt_white-bg.svg",
diff --git a/arrow-array/src/lib.rs b/arrow-array/src/lib.rs
index e826a0e9bc..5114066c12 100644
--- a/arrow-array/src/lib.rs
+++ b/arrow-array/src/lib.rs
@@ -220,6 +220,13 @@
//! [`csv`]: https://docs.rs/arrow/latest/arrow/csv/index.html
//! [DataFusion]: https://github.com/apache/arrow-datafusion
//! [RecordBatchStream]:
https://docs.rs/datafusion/latest/datafusion/execution/trait.RecordBatchStream.html
+//!
+//! # Platform Support
+//!
+//! Only little-endian platforms are officially supported and tested in CI.
+//! Big-endian platforms are not tested in CI and may not work correctly.
+//! Fixes for big-endian platforms are welcome and handled on a best-effort
basis,
+//! but compatibility is not guaranteed.
#![doc(
html_logo_url =
"https://arrow.apache.org/img/arrow-logo_chevrons_black-txt_white-bg.svg",
diff --git a/arrow-avro/src/lib.rs b/arrow-avro/src/lib.rs
index 7f59b0846b..8355ba10c1 100644
--- a/arrow-avro/src/lib.rs
+++ b/arrow-avro/src/lib.rs
@@ -251,6 +251,13 @@
//!
//! [Apache Arrow]: https://arrow.apache.org/
//! [Apache Avro]: https://avro.apache.org/
+//!
+//! # Platform Support
+//!
+//! Only little-endian platforms are officially supported and tested in CI.
+//! Big-endian platforms are not tested in CI and may not work correctly.
+//! Fixes for big-endian platforms are welcome and handled on a best-effort
basis,
+//! but compatibility is not guaranteed.
#![doc(
html_logo_url =
"https://arrow.apache.org/img/arrow-logo_chevrons_black-txt_white-bg.svg",
diff --git a/arrow-buffer/src/lib.rs b/arrow-buffer/src/lib.rs
index cd4d662dbb..345c8f17e6 100644
--- a/arrow-buffer/src/lib.rs
+++ b/arrow-buffer/src/lib.rs
@@ -31,6 +31,13 @@
//! - [`ScalarBuffer<T>`][]: Typed buffer for primitive types (e.g., `i32`,
`f64`)
//! - [`OffsetBuffer<O>`][]: Offsets used in variable-length types (e.g.,
strings, lists)
//! - [`RunEndBuffer<E>`][]: Run-ends used in run-encoded data
+//!
+//! # Platform Support
+//!
+//! Only little-endian platforms are officially supported and tested in CI.
+//! Big-endian platforms are not tested in CI and may not work correctly.
+//! Fixes for big-endian platforms are welcome and handled on a best-effort
basis,
+//! but compatibility is not guaranteed.
#
+//!
+//! # Platform Support
+//!
+//! Only little-endian platforms are officially supported and tested in CI.
+//! Big-endian platforms are not tested in CI and may not work correctly.
+//! Fixes for big-endian platforms are welcome and handled on a best-effort
basis,
+//! but compatibility is not guaranteed.
#![doc(
html_logo_url =
"https://arrow.apache.org/img/arrow-logo_chevrons_black-txt_white-bg.svg",
diff --git a/arrow-cmp/src/lib.rs b/arrow-cmp/src/lib.rs
index 6772e64222..2bbb8854b1 100644
--- a/arrow-cmp/src/lib.rs
+++ b/arrow-cmp/src/lib.rs
@@ -28,6 +28,13 @@
//! dependency (`arrow-ord` already depends on `arrow-select`) or force every
//! downstream user of `arrow-array` to compile the comparator machinery
whether
//! they need it or not.
+//!
+//! # Platform Support
+//!
+//! Only little-endian platforms are officially supported and tested in CI.
+//! Big-endian platforms are not tested in CI and may not work correctly.
+//! Fixes for big-endian platforms are welcome and handled on a best-effort
basis,
+//! but compatibility is not guaranteed.
#![deny(rustdoc::broken_intra_doc_links)]
#![warn(missing_docs)]
diff --git a/arrow-csv/src/lib.rs b/arrow-csv/src/lib.rs
index 4c4b040981..143f4f71c4 100644
--- a/arrow-csv/src/lib.rs
+++ b/arrow-csv/src/lib.rs
@@ -18,6 +18,13 @@
//! Transfer data between the [Apache Arrow] memory format and CSV
(comma-separated values).
//!
//! [Apache Arrow]: https://arrow.apache.org/
+//!
+//! # Platform Support
+//!
+//! Only little-endian platforms are officially supported and tested in CI.
+//! Big-endian platforms are not tested in CI and may not work correctly.
+//! Fixes for big-endian platforms are welcome and handled on a best-effort
basis,
+//! but compatibility is not guaranteed.
#
//!
//! For a higher-level, strongly-typed interface see
[arrow_array](https://docs.rs/arrow_array)
+//!
+//! # Platform Support
+//!
+//! Only little-endian platforms are officially supported and tested in CI.
+//! Big-endian platforms are not tested in CI and may not work correctly.
+//! Fixes for big-endian platforms are welcome and handled on a best-effort
basis,
+//! but compatibility is not guaranteed.
#![doc(
html_logo_url =
"https://arrow.apache.org/img/arrow-logo_chevrons_black-txt_white-bg.svg",
diff --git a/arrow-flight/src/lib.rs b/arrow-flight/src/lib.rs
index 58b51ad48d..30efc3b6ea 100644
--- a/arrow-flight/src/lib.rs
+++ b/arrow-flight/src/lib.rs
@@ -36,6 +36,13 @@
//! `flight-sql` feature of this crate to be activated.
//!
//! [Flight SQL]: https://arrow.apache.org/docs/format/FlightSql.html
+//!
+//! # Platform Support
+//!
+//! Only little-endian platforms are officially supported and tested in CI.
+//! Big-endian platforms are not tested in CI and may not work correctly.
+//! Fixes for big-endian platforms are welcome and handled on a best-effort
basis,
+//! but compatibility is not guaranteed.
#.
//!
//! </div>
+//!
+//! # Platform Support
+//!
+//! Only little-endian platforms are officially supported and tested in CI.
+//! Big-endian platforms are not tested in CI and may not work correctly.
+//! Fixes for big-endian platforms are welcome and handled on a best-effort
basis,
+//! but compatibility is not guaranteed.
#![doc(
html_logo_url =
"https://arrow.apache.org/img/arrow-logo_chevrons_black-txt_white-bg.svg",
diff --git a/arrow-ipc/src/lib.rs b/arrow-ipc/src/lib.rs
index 584b11c78a..27508861fb 100644
--- a/arrow-ipc/src/lib.rs
+++ b/arrow-ipc/src/lib.rs
@@ -37,6 +37,13 @@
//! [IPC File Format]:
https://arrow.apache.org/docs/format/Columnar.html#ipc-file-format
//! [FileReader]: reader::FileReader
//! [FileWriter]: writer::FileWriter
+//!
+//! # Platform Support
+//!
+//! Only little-endian platforms are officially supported and tested in CI.
+//! Big-endian platforms are not tested in CI and may not work correctly.
+//! Fixes for big-endian platforms are welcome and handled on a best-effort
basis,
+//! but compatibility is not guaranteed.
#![doc(
html_logo_url =
"https://arrow.apache.org/img/arrow-logo_chevrons_black-txt_white-bg.svg",
diff --git a/arrow-json/src/lib.rs b/arrow-json/src/lib.rs
index 6e57bd6592..9e0254f268 100644
--- a/arrow-json/src/lib.rs
+++ b/arrow-json/src/lib.rs
@@ -79,6 +79,13 @@
//! [hexadecimal]: https://en.wikipedia.org/wiki/Hexadecimal
//! [`Base16` encoding]: https://en.wikipedia.org/wiki/Base16#Base16
//! [`Base64`]: https://en.wikipedia.org/wiki/Base64
+//!
+//! # Platform Support
+//!
+//! Only little-endian platforms are officially supported and tested in CI.
+//! Big-endian platforms are not tested in CI and may not work correctly.
+//! Fixes for big-endian platforms are welcome and handled on a best-effort
basis,
+//! but compatibility is not guaranteed.
#![doc(
html_logo_url =
"https://arrow.apache.org/img/arrow-logo_chevrons_black-txt_white-bg.svg",
diff --git a/arrow-ord/src/lib.rs b/arrow-ord/src/lib.rs
index 9388007826..cda321b65d 100644
--- a/arrow-ord/src/lib.rs
+++ b/arrow-ord/src/lib.rs
@@ -42,6 +42,13 @@
//! assert_eq!(col1.values(), &[2, 1, 4, 3]);
//! ```
//!
+//!
+//! # Platform Support
+//!
+//! Only little-endian platforms are officially supported and tested in CI.
+//! Big-endian platforms are not tested in CI and may not work correctly.
+//! Fixes for big-endian platforms are welcome and handled on a best-effort
basis,
+//! but compatibility is not guaranteed.
#![doc(
html_logo_url =
"https://arrow.apache.org/img/arrow-logo_chevrons_black-txt_white-bg.svg",
diff --git a/arrow-pyarrow/src/lib.rs b/arrow-pyarrow/src/lib.rs
index 1b96dd1f04..49ddd35c32 100644
--- a/arrow-pyarrow/src/lib.rs
+++ b/arrow-pyarrow/src/lib.rs
@@ -68,6 +68,13 @@
//!
//! Input hints name the pyarrow classes only, and are therefore narrower than
what is accepted: the
//! PyCapsule interface is duck-typed and has no canonical Python type to name.
+//!
+//! # Platform Support
+//!
+//! Only little-endian platforms are officially supported and tested in CI.
+//! Big-endian platforms are not tested in CI and may not work correctly.
+//! Fixes for big-endian platforms are welcome and handled on a best-effort
basis,
+//! but compatibility is not guaranteed.
use std::convert::{From, TryFrom};
use std::ffi::CStr;
diff --git a/arrow-row/src/lib.rs b/arrow-row/src/lib.rs
index d9c0438315..d851e9dd52 100644
--- a/arrow-row/src/lib.rs
+++ b/arrow-row/src/lib.rs
@@ -152,6 +152,13 @@
//! [compared]: PartialOrd
//! [compare]: PartialOrd
//! [the issue]: https://github.com/apache/arrow-rs/issues/4811
+//!
+//! # Platform Support
+//!
+//! Only little-endian platforms are officially supported and tested in CI.
+//! Big-endian platforms are not tested in CI and may not work correctly.
+//! Fixes for big-endian platforms are welcome and handled on a best-effort
basis,
+//! but compatibility is not guaranteed.
#
//! page for feature flags and tips to improve performance.
//!
+//! # Platform Support
+//!
+//! Only little-endian platforms are officially supported and tested in CI.
+//! Big-endian platforms are not tested in CI and may not work correctly.
+//! Fixes for big-endian platforms are welcome and handled on a best-effort
basis,
+//! but compatibility is not guaranteed.
+//!
//! # Columnar Format
//!
//! The [`array`] module provides statically typed implementations of all the
array types as defined
diff --git a/parquet-geospatial/src/lib.rs b/parquet-geospatial/src/lib.rs
index 6e038c4131..d0f4220d80 100644
--- a/parquet-geospatial/src/lib.rs
+++ b/parquet-geospatial/src/lib.rs
@@ -19,6 +19,13 @@
//!
//! [Geometry and Geography Encoding]:
https://github.com/apache/parquet-format/blob/master/Geospatial.md
//! [Apache Parquet]: https://parquet.apache.org/
+//!
+//! # Platform Support
+//!
+//! Only little-endian platforms are officially supported and tested in CI.
+//! Big-endian platforms are not tested in CI and may not work correctly.
+//! Fixes for big-endian platforms are welcome and handled on a best-effort
basis,
+//! but compatibility is not guaranteed.
pub mod bounding;
pub mod interval;
diff --git a/parquet-variant-compute/src/lib.rs
b/parquet-variant-compute/src/lib.rs
index f1e87661c8..bb80b4febf 100644
--- a/parquet-variant-compute/src/lib.rs
+++ b/parquet-variant-compute/src/lib.rs
@@ -38,6 +38,13 @@
//! [Apache Parquet]: https://parquet.apache.org/
//! [`VariantPath`]: parquet_variant::VariantPath
//! [Variant issue]: https://github.com/apache/arrow-rs/issues/6736
+//!
+//! # Platform Support
+//!
+//! Only little-endian platforms are officially supported and tested in CI.
+//! Big-endian platforms are not tested in CI and may not work correctly.
+//! Fixes for big-endian platforms are welcome and handled on a best-effort
basis,
+//! but compatibility is not guaranteed.
mod arrow_to_variant;
mod cast_to_variant;
diff --git a/parquet-variant-json/src/lib.rs b/parquet-variant-json/src/lib.rs
index 6b42b15bd4..963e22446c 100644
--- a/parquet-variant-json/src/lib.rs
+++ b/parquet-variant-json/src/lib.rs
@@ -30,6 +30,13 @@
//! If you are interested in helping, you can find more information on the
GitHub [Variant issue]
//!
//! [Variant issue]: https://github.com/apache/arrow-rs/issues/6736
+//!
+//! # Platform Support
+//!
+//! Only little-endian platforms are officially supported and tested in CI.
+//! Big-endian platforms are not tested in CI and may not work correctly.
+//! Fixes for big-endian platforms are welcome and handled on a best-effort
basis,
+//! but compatibility is not guaranteed.
mod from_json;
mod to_json;
diff --git a/parquet-variant/src/lib.rs b/parquet-variant/src/lib.rs
index a57b470979..79a5f561b4 100644
--- a/parquet-variant/src/lib.rs
+++ b/parquet-variant/src/lib.rs
@@ -30,6 +30,13 @@
//! If you are interested in helping, you can find more information on the
GitHub [Variant issue]
//!
//! [Variant issue]: https://github.com/apache/arrow-rs/issues/6736
+//!
+//! # Platform Support
+//!
+//! Only little-endian platforms are officially supported and tested in CI.
+//! Big-endian platforms are not tested in CI and may not work correctly.
+//! Fixes for big-endian platforms are welcome and handled on a best-effort
basis,
+//! but compatibility is not guaranteed.
mod builder;
mod decoder;
diff --git a/parquet/src/lib.rs b/parquet/src/lib.rs
index fda74d37ab..881782353e 100644
--- a/parquet/src/lib.rs
+++ b/parquet/src/lib.rs
@@ -137,6 +137,13 @@
//! [Dremel]: https://research.google/pubs/pub36632/
//! [Logical Types]:
https://github.com/apache/parquet-format/blob/master/LogicalTypes.md
//! [object_store]: https://docs.rs/object_store/latest/object_store/
+//!
+//! # Platform Support
+//!
+//! Only little-endian platforms are officially supported and tested in CI.
+//! Big-endian platforms are not tested in CI and may not work correctly.
+//! Fixes for big-endian platforms are welcome and handled on a best-effort
basis,
+//! but compatibility is not guaranteed.
#![doc(
html_logo_url =
"https://raw.githubusercontent.com/apache/parquet-format/25f05e73d8cd7f5c83532ce51cb4f4de8ba5f2a2/logo/parquet-logos_1.svg",
diff --git a/parquet_derive/src/lib.rs b/parquet_derive/src/lib.rs
index 34cb1c8dd8..6fda1d6438 100644
--- a/parquet_derive/src/lib.rs
+++ b/parquet_derive/src/lib.rs
@@ -17,6 +17,13 @@
//! This crate provides a procedural macro to derive
//! implementations of a RecordWriter and RecordReader
+//!
+//! # Platform Support
+//!
+//! Only little-endian platforms are officially supported and tested in CI.
+//! Big-endian platforms are not tested in CI and may not work correctly.
+//! Fixes for big-endian platforms are welcome and handled on a best-effort
basis,
+//! but compatibility is not guaranteed.
#![doc(
html_logo_url =
"https://raw.githubusercontent.com/apache/parquet-format/25f05e73d8cd7f5c83532ce51cb4f4de8ba5f2a2/logo/parquet-logos_1.svg",