asdf
Python implementation of the ASDF Standard
Decision gist · record as of 2026-08-14
Yes. ASDF is actively maintained, has low install friction, and solves a genuine need for structured scientific data interchange. The unclear license status is a minor concern that should be resolved by checking the repository before use in proprietary contexts, but it does not block evaluation. The package is well-suited for scientific workflows involving numpy arrays and hierarchical metadata.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- Low install friction with a pure-Python wheel distribution.
- Actively maintained with recent releases; last commit 2026-08-14 and latest release 2026-06-08 indicate ongoing development.
License · maintenance · safety
(unclear) — License treatment is unclear—no SPDX identifier or raw license text is available in the metadata. Verify the actual license by checking the repository or package source before use in proprietary or restricted contexts.
last release 2026-06-08 (67 days) · last repo commit 2026-08-14 · 563 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 326,850 downloads/mo, #7,571 on PyPI
Alternatives
Verify before relying
import asdf
import numpy as np
tree = {"data": np.arange(100)}
af = asdf.AsdfFile(tree)
af.write_to("example.asdf")
af_read = asdf.open("example.asdf")
print(af_read["data"])- Whether the unclear license status reflects a genuine licensing gap or a metadata cataloging issue in the fact sheet.
- Performance characteristics and typical file sizes for which memory mapping provides practical benefit.
What it is and what it does
ASDF is a file format and Python library for storing scientific data with structured, human-readable metadata in YAML and efficient binary storage for arrays. It combines hierarchical metadata validation via JSON Schema with lazy-loading and optional memory-mapping of array data, making it suitable for interchange of complex scientific datasets. The package handles native Python types transparently and supports custom extensions for domain-specific objects.
Typical workflows involve creating a nested dictionary tree of data and metadata, writing it to an ASDF file with optional compression (zlib, bzp2, or lz4), and later reading it back with lazy array access. The format is designed for scientific data interchange and long-term archival, with support for flexible compression and schema-based validation to ensure data integrity.
Use it for
- Store and share multi-dimensional numpy arrays alongside structured metadata in a single validated file.
- Archive scientific simulation results with hierarchical metadata and compression for efficient storage.
- Exchange complex scientific datasets between Python applications with schema validation and human-readable metadata.
- Load large array data on demand via memory mapping without loading the entire file into memory.
- Extend ASDF with custom tags to serialize domain-specific Python objects alongside standard scientific data.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
ASDF is actively maintained, has low install friction, and solves a genuine need for structured scientific data interchange. The unclear license status is a minor concern that should be resolved by checking the repository before use in proprietary contexts, but it does not block evaluation. The package is well-suited for scientific workflows involving numpy arrays and hierarchical metadata.
Install
asdf on PyPI
Before you install
Low install friction with a pure-Python wheel distribution. Actively maintained with recent releases; last commit 2026-08-14 and latest release 2026-06-08 indicate ongoing development.
Requires Python 3.10 or later.
License in practice
License treatment is unclear—no SPDX identifier or raw license text is available in the metadata. Verify the actual license by checking the repository or package source before use in proprietary or restricted contexts.
Quickstart
import asdf
import numpy as np
tree = {"data": np.arange(100)}
af = asdf.AsdfFile(tree)
af.write_to("example.asdf")
af_read = asdf.open("example.asdf")
print(af_read["data"])
Verify before relying
- Whether the unclear license status reflects a genuine licensing gap or a metadata cataloging issue in the fact sheet.
- Performance characteristics and typical file sizes for which memory mapping provides practical benefit.
Package facts
| License | Not declared unclear |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 8 packagesasdf-standardimportlib-metadatajmespathnumpypackagingpyyamlsemantic_versionattrs |
| Maintenance | Actively maintained 67 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 326,850 / month, #7,571 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableProgramming Language :: PythonProgramming Language :: Python :: 3 |
Evidence: asdf-5.3.1-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “hierarchical metadata storage”
- asdfASDF is a Python implementation of the Advanced Scientific Data…
- azure-storage-file-datalakeProvides Python client library for Azure Data Lake Storage Gen2,…
- hdmfHDMF provides APIs for defining hierarchical data models, reading and…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also asdf-astropy · asdf-standard · asdf-transform-schemas · asdf-coordinates-schemas · asdf-wcs-schemas · numpydantic · PyYAML · fitsio · xarray-dataclass · zopfli