There are hundreds of niche scientific extensions. What’s interesting is how cutting-edge work has consolidated around a smaller set of next-generation, high-performance, multi-dimensional open formats: cloud-optimized chunks, columnar analytics, and parallel I/O that survive petabyte pipelines.

This is a map of those formats by domain, then a comparative look at what you can actually call from Java, C#, C, Zig, Rust, Python, Elixir, Fortran, and Ruby. The library picture changes faster than the formats; treat the tables as a field guide, not a warranty.

Astronomy and space sciences

Modern telescopes — JWST, Roman, and the ground-based survey machines behind them — produce multi-band datasets that need structured metadata as much as raw pixels.

  • ASDF (Advanced Scientific Data Format) — modern successor to FITS for many new missions. YAML/JSON-schema metadata plus efficient binary array blocks; designed for validation and extension tags rather than 80-byte card images.
  • FITS 4 — still the interchange lingua franca. Version 4 adds better checksums, compression for large images, and tighter world-coordinate / time handling under the IAU standard.
  • HDF5 (.h5 / .hdf5) — filesystem-in-a-file for simulations and instruments that outgrew flat FITS tables. Self-describing groups, datasets, attributes, chunking, and filters.

Genomics, bioinformatics, and health

Next-generation sequencing and single-cell multi-omics need streaming reads and brutal compression over millions of base pairs.

  • CRAM — reference-based relative encoding; stores differences against a known genome instead of full alignments. Usually much smaller than BAM for the same content.
  • BAM — binary Sequence Alignment/Map; the workhorse machine-readable form of SAM.
  • VCF / BCF — variants: SNPs, indels, and structural calls with a schema that tools actually agree on.
  • h5ad (AnnData) — de facto standard for single-cell transcriptomics in the Python/scanpy world: sparse expression matrix plus observation/variable annotations in one HDF5-shaped container.
  • Loom — HDF5 layout for high-dimensional single-cell matrices with row/column attributes.

Geospatial, climate, and environment

Earth observation and climate models are four-dimensional (lat, lon, height/depth, time) and often live on object storage rather than a single POSIX file.

  • Zarr — chunked, compressed N-dimensional arrays as many objects (local dir, S3, GCS). Parallel web I/O without opening one giant file handle.
  • Cloud Optimized GeoTIFF (COG) — tiled TIFF with overviews so HTTP range requests fetch only the pixels you need.
  • NetCDF-4 — climate/ocean/weather currency; NetCDF-4 rides on HDF5 under the hood while keeping the classic scientific data model (dimensions, variables, attributes).
  • GeoPackage — SQLite container for vectors, tiles, and rasters; open and non-proprietary.
  • LAZ — compressed LiDAR point clouds; the dense 3D counterpart to LAS.

Big data, physics simulations, and HPC

When pipelines hit petabyte scale, science borrows storage ideas from analytics engines.

  • Apache Parquet — columnar on disk; predicate pushdown and compression that make analytical scans cheap.
  • Apache Arrow / Feather — columnar in memory (and IPC on disk); zero-copy sharing across languages when everyone speaks Arrow.
  • Avro — row-oriented binary with an embedded JSON schema; common in streaming pipelines where schemas evolve.
  • F3 (Future-proof File Format) — CMU Database Group experiment: columnar layout that can embed WebAssembly decoders so the file carries its own reader. Early, but points at where “format plus codec” is heading.

Format comparison

FormatCore domainArchitectureWhy it wins
ASDFAstronomyYAML metadata + binary blocksSchema-validated mission interchange
FITS 4AstronomyHeader/data unitsUniversal legacy + improved compression
HDF5Cross-domainHierarchical groups/datasetsSelf-describing HPC arrays
ZarrGeospatial / climateChunked objectsCloud-native parallel I/O
NetCDF-4Climate / oceanDimensions + variables on HDF5Shared scientific data model
CRAMGenomicsReference-relative alignmentsStorage collapse vs BAM
BAM / VCFGenomicsIndexed binary / text+binaryToolchain gravity
ParquetAnalytics / HPC adjacentColumnar diskScan and skip performance
ArrowCross-languageColumnar memory / IPCZero-copy interchange
F3Research / HPCColumnar + embedded WasmSelf-describing decoders
COGGeospatialTiled TIFF + overviewsHTTP partial reads
GeoPackageGeospatialSQLite containerPortable vectors + rasters
LAZLiDARCompressed point cloudDense 3D at manageable size

Comparative library review

Formats only matter if your language can open them. Below: primary libraries for the formats that show up most often in scientific stacks. Blank or “thin” cells mean no serious first-class library I would ship on — use FFI to C, or convert upstream.

Maturity key: reference = de facto / official; strong = production-grade community; usable = works with caveats; thin = early or niche; gap = use another language or bind C.

Coverage matrix (high level)

FormatPythonCRustJavaC#ElixirFortranRubyZig
HDF5referencereferencestrong / evolvingstrongstronggapreferencethingap
NetCDFreferencereferenceusablestrongusableusable (NIFs)referencethingap
Zarrreferencevia NetCDF-C / C++strongstrongthinstrongthingapgap
Parquetreferencevia Arrow C++referencereferencestrongstronggapusableusable → strong
Arrowreferencereference (C / C++)referencereferencestrongstrongthinstrong (C GLib)usable
FITSreferencereference (CFITSIO)usablestrongusableusable (CFITSIO NIF)via CFITSIOthingap
ASDFreferencestrongthinread-orientedgapgapgapgapgap
BAM/CRAM/VCFreferencereference (HTSlib)strongreference (htsjdk)thinVCF usable; BAM/CRAM gapgapusable (aging FFI)gap

Python — still the easiest entry point

If a format matters, Python usually has the nicest API and the most examples.

FormatLibrariesNotes
HDF5h5py, PyTablesBindings to the HDF Group C library
NetCDF / ZarrnetCDF4, xarray, zarrxarray sits on both NetCDF and Zarr
FITS / ASDFAstropy io.fits, asdf, asdf-astropyASDF reference implementation is Python
Genomicspysam (HTSlib), anndata, scanpyBAM/CRAM/VCF + h5ad
Parquet / Arrowpyarrow, fastparquet, Polars/pandasArrow is the shared memory story
Geospatialrasterio, rioxarray, GDAL bindingsCOG/GeoTIFF via GDAL

Current status: richest ecosystem. Production science pipelines still default here for interactive work and for defining interchange.

C — the core libraries

FormatLibrariesNotes
HDF5HDF5 C APIOfficial; parallel HDF5 for MPI
NetCDFNetCDF-CCan expose Zarr stores in recent lines
FITSCFITSIOReference FITS; Fortran-callable
GenomicsHTSlibSAM/BAM/CRAM/VCF/BCF, BGZF, tabix
ASDFasdf-cSpec-track C implementation
ArrowArrow C / nanoarrowC Data Interface for zero-copy handoff

Current status: if you need longevity, MPI, or something every other language wraps, start in C (or accept that you will).

Fortran — still first-class for arrays on disk

FormatLibrariesNotes
HDF5HDF5 Fortran bindingsOfficial, with the C library
NetCDFnetCDF-FortranClimate/ocean model staple
FITSCFITSIO Fortran APISame core as C
Parquet / Zarr / Arrow—Generally gap; call C or preprocess

Current status: excellent for HDF5/NetCDF/FITS in HPC models. Columnar cloud formats are not where Fortran spends its energy.

Java — enterprise science and genomics tooling

FormatLibrariesNotes
HDF5Official Java bindings; JHDF (pure Java read); sis-jhdf5Mix of JNI and pure Java
NetCDF / scientificnetCDF-JavaReads NetCDF, HDF5, GRIB, BUFR
Zarrzarr-java, JZarr, n5-zarr, netCDF-Java pathsMultiple implementations
FITSnom.tam.fitsMature FITS 4 support
ASDFJava reader (read-focused)Weaker than Python/C
GenomicshtsjdkBAM/CRAM/VCF with HTSlib-class gravity
Parquet / Arrowparquet-java, Arrow JavaFirst-class analytics stack

Current status: strongest non-Python home for genomics (htsjdk) and a serious NetCDF/HDF5/Zarr story for Earth science JVMs.

C# / .NET — managed readers catching up

FormatLibrariesNotes
HDF5PureHDF (managed), HDF.PInvoke / HDF5-CSharpPureHDF avoids native deps
ParquetParquet.Net, ParquetSharpParquet.Net is pure managed
ArrowApache Arrow C#Official implementation
FITSCSharpFITS, FitsLib, JPFITSUsable, not astronomy’s center
NetCDF / Zarrthinner / bindingsOften via C APIs or conversion
GenomicsthinPrefer JVM or Python pipelines

Current status: Parquet and HDF5 are genuinely good on modern .NET. Domain formats (Zarr, CRAM, ASDF) lag.

Rust — safe reimplementations and good FFI

FormatLibrariesNotes
Arrow / Parquetarrow, parquet (arrow-rs)Official Rust implementations
ZarrzarrsListed on zarr.dev; v2/v3
HDF5 / NetCDF / FITShdf5 crates (often FFI), emerging pure ports (e.g. consus line)Ecosystem split: bind C vs rewrite
GenomicsnoodlesPure Rust BAM/CRAM/VCF/FASTA/…
ASDFlimitedPrefer Python for authorship

Current status: Arrow/Parquet/Zarr/noodles are the places Rust already feels production-native. Hierarchical science formats are improving but still dual-track (FFI vs pure).

Elixir — BEAM-native where it counts

FormatLibrariesNotes
Zarrex_zarrPure Elixir v2/v3; CI-tested against zarr-python
Arrow / Parquetex_arrow, parquex, adbcex_arrow: IPC, Flight, ADBC, Parquet, Dataset; parquex: Rust-powered Parquet streaming (local/S3); early pure-Elixir Arrow experiments also exist (arrow, errow)
NetCDFnetcdf, excdf, netcdf_nifNIF bindings to the NetCDF C library; excdf is the newer read/write-oriented packaging (2026); netcdf is the longer-lived Hex package
FITSexfitsElixir bindings to CFITSIO
GeoTIFFgeotiffEarly reader (0.1.x); COG/cloud workflows still thin
VCFvcfPure Elixir VCF 4.1–4.5 parse / validate / stream / write
HDF5 / BAM / CRAM / ASDF—Nothing yet

Current status: Zarr and Arrow/Parquet are first-class on the BEAM. NetCDF and FITS are available via C NIFs (netcdf / excdf, exfits). Variants have a Hex VCF library; alignments (BAM/CRAM) and HDF5 still mean a boundary service or a new NIF.

Ruby — bindings and BioRuby, not format leadership

FormatLibrariesNotes
Arrow / Parquetred-arrow, red-parquet (GObject / Arrow C++)Solid if you accept native deps
Genomicsbio-samtools (FFI to samtools/HTSlib)Works; maintenance is uneven
FITS / HDF5 / Zarrthin / archived gemsPrefer conversion pipelines

Current status: fine as a consumer via Arrow or bio-samtools. Not where new scientific format work happens.

Zig — early but pointed at columnar I/O

FormatLibrariesNotes
Parquetzig-parquetPure Zig read/write, codecs, Arrow C Data ABI
Arrowzarrow, arrow-zigNative layouts + IPC; maturing
HDF5 / NetCDF / Zarr / FITS / HTSgapBind C or stay in another language

Current status: Zig’s interesting scientific niche today is columnar (Parquet/Arrow), not the classic HPC hierarchy formats. Expect rapid change.

How to choose

  1. Interchange with astronomers — FITS everywhere; ASDF when the mission already standardized on it (Python/C first).
  2. Climate / Earth arrays on object stores — Zarr (+ xarray); NetCDF-4 when the model community demands it.
  3. Genomics alignments and variants — HTSlib / pysam / htsjdk / noodles; CRAM for cold storage.
  4. Analytics over tables — Parquet on disk, Arrow in process; language choice matters less once Arrow is the glue.
  5. BEAM services — ex_zarr / ex_arrow (and parquex) for Zarr/Arrow/Parquet; exfits and netcdf/excdf when you accept CFITSIO/NetCDF NIFs; HDF5 and BAM/CRAM still need another language or a new binding.
  6. Systems languages without a science runtime — C cores, or Rust when you want memory safety and are willing to live with crate churn.

Closing

Scientific formats stopped being “whatever the instrument vendor shipped” and became a small set of architectural bets: hierarchical files (HDF5/NetCDF), cloud chunks (Zarr/COG), reference compression (CRAM), and columnar analytics (Parquet/Arrow). Language support follows those bets unevenly. Python and C still define the center; Java owns much of genomics tooling; Rust and Elixir are credible where formats are specs rather than 30-year C APIs; Zig is entering through Parquet/Arrow; Fortran remains indispensable for the models that never left NetCDF/HDF5; Ruby and C# are selective rather than universal.

If you are picking a stack for a new pipeline, pick the format for the access pattern first, then the language that already has a boring library for it. Inventing a fifteenth niche extension is almost never the hard part anymore — reading it in ten years, from three languages, on object storage, is.

References

  1. CMU Database Group — Future File Formats
  2. ASDF overview
  3. ASDF implementations
  4. NASA — FITS Standard Version 4
  5. NASA — FITS I/O libraries
  6. Zarr implementations
  7. Apache Arrow implementation status
  8. HTSlib
  9. noodles (Rust)
  10. ex_zarr
  11. ex_arrow
  12. exfits
  13. netcdf · excdf
  14. parquex · vcf
  15. PureHDF
  16. Parquet.Net
  17. zig-parquet
  18. F3 — Future-proof File Format