github ornladios/ADIOS2 v2.12.0-rc1

pre-release11 hours ago

Release notes

C API Improvements

New two-call pattern functions for safely retrieving string data of unknown
length: adios2_get_string(), adios2_attribute_string_data(), and
adios2_attribute_string_data_array().

Selection API for Get() Operations

A new Selection class bundles spatial, block, and step parameters into a
single object passed to Get(), replacing scattered SetSelection() /
SetBlockSelection() / SetStepSelection() calls on Variable.

engine.Get(var, data, adios2::Selection::BoundingBox({0,0},{10,20}).WithSteps(0,5));

Plugin Interface v2 (Breaking Change)

Engine and operator plugins no longer inherit from internal core types.
Engine plugins inherit from PluginEngineInterface, operator plugins from
PluginOperatorInterface, and shared libraries only need to link adios2::cxx.
Update EngineCreate() / EngineDestroy() signatures; see examples/plugins/.

C++17 Minimum Requirement

The minimum C++ standard to build ADIOS2 has been raised from C++14 to C++17.

S3 Object Storage for BP5 Data

BP5 can now write data files to S3-compatible object storage (Amazon S3, MinIO,
Ceph, etc.) with metadata kept on the local filesystem. Set
DataFileTransport=awssdk, S3Endpoint, and S3Bucket as engine parameters.

Python Bindings: Nanobind Migration

The Python bindings have been migrated from pybind11 to nanobind, producing
smaller, faster extension modules and enabling stable-ABI (abi3) wheels for
Python 3.12 and later.

Asymmetric Encryption Operator

A new Encryption operator encrypts variable data using libsodium's sealed-box
construction (X25519 + XSalsa20-Poly1305). Writers only need the recipient's
public key; only the private key holder can decrypt.

SZ3 Compression Operator

A new SZ3 lossy compression operator is available, extending the existing
options alongside SZ, ZFP, MGARD, and BigWhoop.

RefactorProDM Operator

A new RefactorProDM operator integrates ADIOS2 with ProDM (Dr. Xin Liang's
decomposition library), providing decomposition-based data reduction when ProDM
is available at build time.

Python Free-Threading Support

The Python bindings are now compatible with free-threaded Python (PEP 703,
python3.13t), allowing ADIOS2 to run without the GIL.

HTTPS Transport for Remote Access

An HTTPS-based remote transport (XrootdHttpsRemote) using libcurl has been
added as an alternative to the native XRootD protocol for environments where
native XRootD connectivity is unavailable.

XRootD Server Resource Management

The XRootD server plugin now evicts idle file descriptors and metadata when
configurable limits are approached, shares a single FD across engines reading
the same tar file, and batches variable reads into a single network round-trip.

Cross-Endian Interoperability

The ADIOS2_USE_Endian_Reverse CMake option has been removed; cross-endian
file interoperability is now always enabled.

Campaign Reader Improvements

Host aliases, XRootD host entries, and in-memory metadata caching were added.
The reader now requires ACA 0.7 strictly. A rewritten SQLite join query reduces
open time from ~27 seconds to under one second for large archives.

TAR File Reading

BP5 datasets, text files, and images can now be read from TAR archives (local,
HTTPS-hosted, or via the remote server) when a TAR index is provided.

BP5 DataFileTransport Parameter Rename

The BP5 engine parameter DataTransport has been renamed to DataFileTransport.
Existing configurations must be updated.

BP5 Concurrent File Access

BP5 data reading now uses per-subpool locking over a shared file-descriptor
pool, enabling safe concurrent reads from multiple threads.

Python Stream: minmax()

adios2.Stream.minmax(name, [step], [block_info_list]) returns per-step or
global min/max values of a variable.

Inline Engine Buffering

The inline engine now supports basic output buffering, moving toward feature
parity with file-based engines for in-situ workflows.

Windows and macOS pip Wheel Support

CI now runs pip sdist and wheel integration tests on Windows and macOS,
verifying correct library loading under pip install workflows.

REUSE License Compliance

ADIOS2 now complies with the REUSE specification; every source file carries a
machine-readable SPDX license and copyright notice.

What's Changed

New Contributors

Full Changelog: v2.11.0...v2.12.0-rc1

Don't miss a new ADIOS2 release

NewReleases is sending notifications on new releases.