Skip to content

Release Notes

See GitHub Releases for downloads and more information.

1.0.0.CR1 (2026-05-31)

Highlights of this release:

  • Breaking: ColumnReader rebuilt around a layer model, with per-layer validity, offsets, and real-item-only sizing for nested data (see the Layer Model docs); ColumnReader is now marked @Experimental
  • More performant evaluation of multi-column filter expressions
  • Split-aware reading via RowGroupPredicate.byteRange(...), for Hadoop-style split integrations
  • Coordinated multi-column reads via ColumnReaders.nextBatch() / getRecordCount()
  • Richer RowReader value model: by-index field access on PqStruct, key-based lookup and typed accessors on PqMap, typed List accessors on PqList, and additional variant accessors
  • Float16 logical type support (readable values and filter predicates) and recognition of the NullType logical annotation
  • First-cut geospatial support (GEOMETRY/GEOGRAPHY logical types and bounding-box metadata)
  • Reading of local files larger than 2 GB
  • CLI: exhaustive logical-type formatting; hardwood dive: faster navigation of large collections and corrected "go to latest" in the data preview

See the 1.0.0.CR1 milestone on GitHub for the full list of resolved issues.

Thank you to all contributors to this release: Carlos Sousa, Fawzi Essam, Gunnar Morling, Manish, Mohamed Ibrahim Elsawy, muhannd Sayed, polo, Prashant Khanal, Rion Williams, Said Boudjelda.

1.0.0.Beta2 (2026-04-29)

Announcement blog post

Highlights of this release:

  • Interactive hardwood dive TUI for exploring Parquet files
  • Parquet Variant logical type, including shredded reassembly
  • Additional logical types: INTERVAL, MAP/LIST, INT96 timestamps
  • Faster reads via a parallel per-column pipeline and per-column in-page row skipping
  • Reduced S3 traffic via byte-range caching, coalesced GETs, and small-column fetches
  • Unified reader API based on builders
  • CLI with reorganized inspect subcommands

See the 1.0.0.Beta2 milestone on GitHub for the full list of resolved issues.

Thank you to all contributors to this release: André Rouél, Brandon Brown, Bruno Borges, Fawzi Essam, Gunnar Morling, Manish, polo, Rion Williams, Sabarish Rajamohan, Trevin Chow.

1.0.0.Beta1 (2026-04-02)

Announcement blog post

Highlights of this release:

  • S3 and remote object store support with coalesced reads
  • CLI tool for inspecting and querying Parquet files
  • Avro GenericRecord support via the hardwood-avro module
  • Row group filtering with predicate push-down and page-level column index filtering
  • InputFile abstraction for pluggable file sources
  • S3 support and filtering in the parquet-java compatibility layer
  • Project documentation site

See the 1.0.0.Beta1 milestone on GitHub for the full list of resolved issues.

Thank you to all contributors to this release: Arnav Balyan, Brandon Brown, Gunnar Morling, Manish, Nicolas Grondin, Rion Williams, Romain Manni-Bucau, Said Boudjelda.

1.0.0.Alpha1 (2026-02-26)

Announcement blog post

Highlights of this release:

  • Zero-dependency Parquet file reader for Java
  • Row-oriented and columnar read APIs
  • Support for flat and nested schemas (lists, maps, structs)
  • All standard encodings (RLE, DELTA_BINARY_PACKED, DELTA_BYTE_ARRAY, BYTE_STREAM_SPLIT, etc.)
  • Compression: Snappy, ZSTD, LZ4, GZIP, Brotli
  • Projection push-down, parallel page pre-fetching, and memory-mapped file I/O
  • Multi-file reader and parquet-java compatibility layer
  • Optional Vector API acceleration on Java 22+
  • JFR events for observability
  • BOM for dependency management

Thank you to all contributors to this release: Andres Almiray, Gunnar Morling, Rion Williams.