<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/parquet-file-write-support-bloom-filters-improved-performance-hardwood-1-1-0-beta1-is-out-uti7sxa6b" -->

---
title: Parquet File Write Support, Bloom Filters, Improved...
description: Hardwood 1.1.0.Beta1 has been released, adding Parquet write support via a record-based RowWriter API and a batch-oriented ColumnWriter API, both tested...
canonical: https://daily.dev/posts/parquet-file-write-support-bloom-filters-improved-performance-hardwood-1-1-0-beta1-is-out-uti7sxa6b
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Parquet File Write Support, Bloom Filters, Improved Performance: Hardwood 1.1.0.Beta1 Is Out | daily.dev
og:description: Hardwood 1.1.0.Beta1 has been released, adding Parquet write support via a record-based RowWriter API and a batch-oriented ColumnWriter API, both tested...
og:url: https://daily.dev/posts/parquet-file-write-support-bloom-filters-improved-performance-hardwood-1-1-0-beta1-is-out-uti7sxa6b
og:image: https://api.daily.dev/og/posts/UtI7sXA6b.png
og:image:alt: Parquet File Write Support, Bloom Filters, Improved Performance: Hardwood 1.1.0.Beta1 Is Out
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Parquet File Write Support, Bloom Filters, Improved Performance: Hardwood 1.1.0.Beta1 Is Out

**[Gunnar Morling](https://daily.dev/sources/gunnar-morling)** · 8 min read · 3 upvotes · 0 comments

## Summary

Hardwood 1.1.0.Beta1 has been released, adding Parquet write support via a record-based RowWriter API and a batch-oriented ColumnWriter API, both tested against DuckDB and parquet-java for compatibility. The release also adds Bloom filter and dictionary-based row-group pruning for faster predicate push-down on remote Parquet files, plus performance improvements including a fast path for fixed-length list columns, interned dictionary strings, and optimized Thrift footer parsing. The CLI moved from Quarkus/picocli to the Æsh framework for faster startup, gained a new AI coding agent skill, and was experimentally ported to WebAssembly for in-browser Parquet inspection. Write support is currently single-threaded and lacks S3 support and Bloom filter writing; 109 issues were resolved in this release with contributions from 19 community members.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.morling.dev/blog/parquet-file-write-support-bloom-filters-improved-performance-hardwood-1-1-0-beta1>

## Questions this post answers

### Does Hardwood support writing Parquet files yet, or just reading them?

As of the 1.1.0.Beta1 release, Hardwood supports writing Parquet files through two new APIs: the record-based RowWriter for complex schemas with structs, lists, or maps, and the batch-oriented ColumnWriter for performance-critical use cases like compaction. Both are tested against DuckDB and Apache parquet-java for cross-compatibility. The writer is currently single-threaded and does not yet support writing directly to S3 or Bloom filters.

_daily.dev surfaces release notes like this for engineers tracking Parquet tooling maturity before adopting it in production._

### How do Bloom filters help speed up Parquet queries on S3?

Bloom filters let a Parquet reader quickly determine that a row group definitely does not contain a search key, so it can skip fetching that row group entirely. This reduces both query runtime and data transfer cost when querying remote Parquet files on S3, complementing existing column statistics for selective queries on high-cardinality columns. Hardwood 1.1.0.Beta1 added support for evaluating EQ and IN predicates using Bloom filters.

_Engineers optimizing remote Parquet query costs follow library updates like this on daily.dev._

### Why did the Hardwood CLI switch from Quarkus and picocli to the Æsh framework?

The Hardwood CLI moved its foundation from Quarkus and picocli to the Æsh command-line framework because Æsh is much more lightweight and better fits Hardwood's goal of minimal dependencies. The change is mostly transparent to users but results in a noticeably faster startup, with `hardwood info` on a 628 MB file clocking in at 12.8 ms ± 1.7 ms on an Apple M3 Max, which matters for usage-based billing environments like AWS Lambda.

_daily.dev helps developers weighing CLI framework tradeoffs like startup latency and dependency footprint stay informed._

---

Tags: [#java](https://daily.dev/tags/java), [#big-data](https://daily.dev/tags/big-data), [#webassembly](https://daily.dev/tags/webassembly)

[View this post on daily.dev](https://daily.dev/posts/parquet-file-write-support-bloom-filters-improved-performance-hardwood-1-1-0-beta1-is-out-uti7sxa6b)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Parquet File Write Support, Bloom Filters, Improved Performance: Hardwood 1.1.0.Beta1 Is Out","url":"https://daily.dev/posts/parquet-file-write-support-bloom-filters-improved-performance-hardwood-1-1-0-beta1-is-out-uti7sxa6b","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/parquet-file-write-support-bloom-filters-improved-performance-hardwood-1-1-0-beta1-is-out-uti7sxa6b"},"datePublished":"2026-09-01T16:29:26.036Z","dateModified":"2026-09-01T16:30:37.862Z","description":"Hardwood 1.1.0.Beta1 has been released, adding Parquet write support via a record-based RowWriter API and a batch-oriented ColumnWriter API, both tested...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/a9bc1017eec7bbe7a19e176216544ce1?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/a9bc1017eec7bbe7a19e176216544ce1?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Gunnar Morling","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Gunnar Morling","logo":"https://media.daily.dev/image/upload/s--77UJH_xq--/f_auto,q_auto/v1773648773/logos/gunnar-morling?_a=BAMAMiiu0","url":"https://daily.dev/sources/gunnar-morling"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/parquet-file-write-support-bloom-filters-improved-performance-hardwood-1-1-0-beta1-is-out-uti7sxa6b","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":2},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"java,big-data,webassembly","timeRequired":"PT8M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Gunnar Morling","item":"https://daily.dev/sources/gunnar-morling"},{"@type":"ListItem","position":3,"name":"Parquet File Write Support, Bloom Filters, Improved Performance: Hardwood 1.1.0.Beta1 Is Out"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/parquet-file-write-support-bloom-filters-improved-performance-hardwood-1-1-0-beta1-is-out-uti7sxa6b#faq","mainEntity":[{"@type":"Question","name":"Does Hardwood support writing Parquet files yet, or just reading them?","acceptedAnswer":{"@type":"Answer","text":"As of the 1.1.0.Beta1 release, Hardwood supports writing Parquet files through two new APIs: the record-based RowWriter for complex schemas with structs, lists, or maps, and the batch-oriented ColumnWriter for performance-critical use cases like compaction. Both are tested against DuckDB and Apache parquet-java for cross-compatibility. The writer is currently single-threaded and does not yet support writing directly to S3 or Bloom filters. daily.dev surfaces release notes like this for engineers tracking Parquet tooling maturity before adopting it in production."}},{"@type":"Question","name":"How do Bloom filters help speed up Parquet queries on S3?","acceptedAnswer":{"@type":"Answer","text":"Bloom filters let a Parquet reader quickly determine that a row group definitely does not contain a search key, so it can skip fetching that row group entirely. This reduces both query runtime and data transfer cost when querying remote Parquet files on S3, complementing existing column statistics for selective queries on high-cardinality columns. Hardwood 1.1.0.Beta1 added support for evaluating EQ and IN predicates using Bloom filters. Engineers optimizing remote Parquet query costs follow library updates like this on daily.dev."}},{"@type":"Question","name":"Why did the Hardwood CLI switch from Quarkus and picocli to the Æsh framework?","acceptedAnswer":{"@type":"Answer","text":"The Hardwood CLI moved its foundation from Quarkus and picocli to the Æsh command-line framework because Æsh is much more lightweight and better fits Hardwood's goal of minimal dependencies. The change is mostly transparent to users but results in a noticeably faster startup, with `hardwood info` on a 628 MB file clocking in at 12.8 ms ± 1.7 ms on an Apple M3 Max, which matters for usage-based billing environments like AWS Lambda. daily.dev helps developers weighing CLI framework tradeoffs like startup latency and dependency footprint stay informed."}}]}
```

