<!-- Generated from the rendered page by scripts/write-llm-mirrors.mjs. Do not edit by hand. -->
Canonical: https://molo17.com/blog/molo17-parquetkt-kotlin-apache-parquet-library/
Markdown mirror: https://molo17.com/blog/molo17-parquetkt-kotlin-apache-parquet-library/index.md
Title: MOLO17 ParquetKt: Kotlin library for Apache Parquet
Description: MOLO17 ParquetKt is a pure Kotlin library for Apache Parquet, designed for performance, memory efficiency and production use. Open source and battle-tested in Gluesync.

[← All articles](/blog/)

Article

# MOLO17 ParquetKt: a high-performance Apache Parquet library for Kotlin

9 Feb 2026  [News](/blog/?category=news)  2 min read

MOLO17 ParquetKt, a pure Kotlin library for reading and writing Apache Parquet files, now released as open source and already running in production within Gluesync.

![](https://molo17.com/wp-content/uploads/2026/02/ParquetKT-1024x683.png)

Working with **[Apache Parquet](https://parquet.apache.org/)** is a common requirement in modern data platforms, especially when performance, portability and schema control matter.  
While solid implementations exist in other ecosystems, the [Kotlin](https://kotlinlang.org/)/JVM world has historically lacked a fully managed, production-ready Parquet library designed around Kotlin’s language features and runtime characteristics.

This gap led us to develop **[MOLO17 ParquetKt](https://gitlab.com/molo17-public/gluesync/molo17-parquetkt), a pure Kotlin library for reading and writing Apache Parquet files**, now released as open source and already running in production within [Gluesync](https://molo17.com/gluesync/).

## Why ParquetKt exists

ParquetKt was born from a very practical need: **efficiently handling Parquet files at scale in Kotlin-based systems**, without relying on native bindings or heavyweight dependencies.

Instead of starting from scratch, we took inspiration from the excellent **parquet-dotnet** project and adapted its design principles to the Kotlin ecosystem, rethinking memory management, APIs and concurrency to fit the JVM runtime and Kotlin idioms.

The result is a library that focuses on:

-   predictable performance
-   controlled memory usage
-   clear, type-safe APIs
-   production stability

## Designed for Kotlin developers

ParquetKt embraces Kotlin’s strengths rather than working around them.  
At the high level, **developers can read and write Parquet files directly from Kotlin data classes**, with automatic schema generation and serialization. This makes common use cases concise and expressive, without sacrificing control.

For more advanced scenarios, the library also exposes **low-level APIs** that allow full control over schemas, row groups and column structures, making it suitable for complex pipelines and custom storage layouts.

## Performance and memory behavior

One of the main design goals of ParquetKt is **consistent performance under load**, especially when dealing with large datasets.

The library uses memory-efficient defaults, smaller row groups and automatic flushing to disk to prevent uncontrolled memory growth. For long-running or high-volume jobs, this significantly reduces the risk of out-of-memory errors.

When needed, memory behavior can be further tuned through manual flush control and array pooling, allowing developers to adapt ParquetKt to different workloads and infrastructure constraints.

## Async and streaming-friendly by design

ParquetKt supports both **synchronous and asynchronous access patterns**.  
In addition to traditional blocking APIs, it provides coroutine-based functions and Flow support for non-blocking I/O and streaming reads.

This makes it a natural fit for modern Kotlin applications built around asynchronous processing and back-pressure-aware pipelines.

## Compression, schemas and data types

The library supports the most commonly used **Parquet compression codecs**, offering a good balance between file size and throughput depending on the use case.

Schema handling is flexible: schemas can be defined explicitly or derived automatically via reflection from Kotlin data classes, including support for nullable fields and nested structures. This allows ParquetKt to be used both in strongly typed domain models and in more dynamic data processing scenarios.

## Production-ready and open source

ParquetKt is **already used in production as part of Gluesync**, where it handles large-scale Parquet workloads daily.  
The project comes with extensive test coverage and transparent benchmarks, all publicly available in the repository.

By open-sourcing ParquetKt, we aim to provide the Kotlin community with a reliable, well-tested Parquet implementation that can be reused beyond Gluesync and adapted to different data architectures.

**Explore the** [project, benchmarks and documentation](https://gitlab.com/molo17-public/gluesync/molo17-parquetkt)**.**

[← Older article Introducing Data Integration Universe: a new event for data professionals](/blog/data-integration-universe/) [Newer article → Gluesync 2.1.11.0 released: extended bulk load, improved UI, advanced snapshot control](/blog/gluesync-2-1-11-0/)

## Keep reading

1.  [News MOLO17 ParquetKt lands on GitHub MOLO17 Kotlin library for Apache Parquet is now fully public on GitHub 21 May 2026](/blog/molo17-parquetkt-lands-on-github/)
2.  [News Blockchain for industry and mobility: partnership with Oracle MOLO17 partners with Oracle Blockchain Cloud for mobility and other sectors. The blockchain is much more than a buzzword in financial circles, it is a reality and one of \[…\] 13 Jul 2021](/blog/blockchain-for-industry-and-mobility-partnership-with-oracle/)
3.  [News Case Study: Safety and Rescue for Barcolana sailors YouSeaMe, is the suitably-named app developed by MOLO17 for the Italian Coast Guard with sailors in mind to help rescue people in open seas if challenges arose. When the \[…\] 29 Nov 2022](/blog/case-study-safety-and-rescue-for-barcolana-sailors/)

[Back to all articles](/blog/) [More in News →](/blog/?category=news)
