array-record
A file format that achieves a new frontier of IO efficiency
What it is and what it does
ArrayRecord is a file format designed for efficient storage and retrieval of array data, derived from Google's Riegeli format. It supports parallel read and write operations, random access by record index, and reuses Riegeli's compression algorithms. The package provides Python bindings to work with ArrayRecord files, making it suitable for machine learning pipelines, data processing workflows, and other scenarios where you need fast, indexed access to serialized array data.
The package depends on absl-py and etils, and requires Python 3.11 or later. It ships as precompiled wheels for modern Python versions across macOS and Linux platforms, reducing installation complexity. The format is particularly relevant for systems that need to read or write large collections of records in parallel without sequential bottlenecks.
Use it for:
- Store and retrieve training datasets for machine learning with parallel I/O in data pipelines
- Random-access indexing into large serialized record collections without sequential scanning
- Replace Riegeli when you need parallel read/write and indexed record lookup in Python
- Efficient data interchange format for distributed computing frameworks handling array data
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
ArrayRecord is a file format for storing and accessing array data with parallel read/write support and random access by record index, built on Riegeli compression.
Yes, if you need parallel record I/O and random indexing for array data. The active maintenance, Apache-2.0 license, and prebuilt wheels make it low-friction to adopt. Install it when your workflow involves large record collections that benefit from indexed access and parallel operations; skip it if you only need sequential streaming or don't require index-based lookups.
Install
array-record on PyPI
pip
pip install array-recorduv
uv add array-recordpoetry
poetry add array-recordInstalling array-record
Before you install
Medium install friction due to compiled wheels for multiple Python versions and architectures. Active maintenance with recent commits; last release 274 days ago suggests ongoing development.
License in practice
Apache-2.0 permissive license allows commercial and private use with minimal restrictions; suitable for most projects.
Quickstart
pip install array-record
import array_record
# Create or read ArrayRecord files with parallel I/O support
Requires Python 3.11 or later; prebuilt wheels available for macOS (arm64) and Linux (aarch64, x86_64).
Verify before relying
- Specific API surface and how to instantiate/use ArrayRecord readers and writers
- Performance benchmarks vs. Riegeli or other serialization formats
- Whether random access by index requires loading entire file into memory
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.11) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 2 — absl-py, etils |
| Maintenance | actively maintained — 274 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 3,636,122/month — #2,548 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: array_record-0.8.3-cp311-cp311-macosx_11_0_arm64.whl; array_record-0.8.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; array_record-0.8.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; array_record-0.8.3-cp312-cp312-macosx_11_0_arm64.whl; array_record-0.8.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; array_record-0.8.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; array_record-0.8.3-cp313-cp313-macosx_11_0_arm64.whl; array_record-0.8.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; array_record-0.8.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; array_record-0.8.3-cp314-cp314-macosx_11_0_arm64.whl; array_record-0.8.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; array_record-0.8.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Tags
More Database packages
psycopg2-binary is a PostgreSQL database…
copyleft · top 1,000 on PyPI
redisPython client library for connecting to and…
permissive · top 1,000 on PyPI
ydbYDB Python SDK is the official client library…
permissive · top 1,000 on PyPI
snowflake-connector-pythonConnects Python applications to Snowflake data…
permissive · top 1,000 on PyPI
sqlparsesqlparse tokenizes SQL text into a tree of…
permissive · top 1,000 on PyPI
dbt-adaptersProvides base adapter protocols and shared…
permissive · top 1,000 on PyPI
acvl-utilsProvides utility functions for dynamic…
permissive · top 15,000 on PyPI
rensaRensa computes MinHash signatures for fast…
permissive · top 15,000 on PyPI
awkward-cppProvides compiled C++ kernels and extensions…
permissive · top 5,000 on PyPI
awkward0Manipulates complex, non-rectangular data…
permissive · top 15,000 on PyPI
numexprNumExpr evaluates numerical expressions on…
permissive · top 5,000 on PyPI
HLLEstimates the cardinality (unique count) of…
permissive · top 15,000 on PyPI
awkwardAwkward Array provides NumPy-like operations on…
permissive · top 5,000 on PyPI
libkvikio-cu12libkvikio-cu12 provides Python and C++ bindings…
permissive · top 15,000 on PyPI
tensorstoreTensorStore reads and writes large…
permissive · top 5,000 on PyPI