Skip to content

Releases: aloneguid/parquet-dotnet

4.23.0

18 Jan 15:03
Compare
Choose a tag to compare

New features

  • Class serializer now supports fields, in addition to properties (#405).
  • New helper class ParquetToFlatTableConverter to simplify conversion of parquet files to flat data destinations.

Bugs fixed

  • .NET >= 6 specific types DateOnly and TimeOnly deserialization was failing due to schema validation errors (#395).
  • TimeOnly nullability wasn't respected.
  • Custom attributes like [ParquetTimestamp], [ParquetMicroSecondsTime] or [ParquetDecimal] were ignored for nullable class properties (408).

Floor

  • Remembers theme variant - "light" or "dark".
  • Ask for permission to send anonymous telemetry data on start.
  • New button - reload file from disk.
  • Simple conversion to CSV.
  • Implemented version check on start.

4.22.1

17 Jan 10:52
ed58521
Compare
Choose a tag to compare

Improvements

  • Deserialization into array of primitives is now supported on root class level in #456.
  • Untyped deserialiser supports legacy arrays.

Parquet Floor

  • Schema will still be loaded even if a file has failed to load.
  • Legacy arrays can be viewed.

4.22.0

11 Jan 15:42
Compare
Choose a tag to compare

Improvements

  • Added ParquetSerializer DeserializeAsync overloads accepting local file path (#379)

Bug fixes

  • DataFrameReader did not handle files with multiple row groups (#365)

Parquet Floor

  • Reduced binary size after enabling partial trimming.
  • byte[] columns are left-aligned.
  • Increased data cell top and bottom padding by 2.

4.20.1

10 Jan 12:36
Compare
Choose a tag to compare

Fixes

  • NetBox was exposing some internal types (#451)

Experimental

Parquet Floor (reference implementation of desktop viewer) user interface improvements.

4.20.0

08 Jan 13:58
Compare
Choose a tag to compare

New features

Support Writing Int64 timestamp MICROS unit (#362).

Experimental features

Cross-platform desktop app called Floor is published as a part of this release.

4.19.0

05 Jan 10:16
Compare
Choose a tag to compare

Improvements

Experimental features

  1. This release has experimental API for a new "dictionary serializer" (name might change) to get you a taste of the future before row API will be deprecated in a very far future.
  2. Codebase also includes an experimental cross-platform desktop application written in Avalonia to view parquet files. It's in very early stages but works for basic use cases. Avalonia app was included in the solution because it does not require any IDE add-ons, SDKs and so on and just builds with stock .NET 8 SDK. In the future the app will be pre-built for Linux, Windows (and possibly Mac with community help) and included in the build artifacts.

Looking forward to your thoughts!

4.18.1

31 Dec 14:36
Compare
Choose a tag to compare

Critical bug fix: reverting #423 as it introducing some side effects that prevent from generating correct files.

4.18.0

22 Dec 10:18
Compare
Choose a tag to compare

This is the next stability improvements release, and a big thanks to everyone who contributed! Without you this project would not be possible.

Please don't forget to star this project on GitHub if you like it, this helps the project grow and motivates the fellow contributors to keep contributing!

Improvements

  • Explicitly use invariant culture when encoding number types, eliminating the potential for generating invalid JSON by @rachied in #438.
  • Added DeserializeAllAsync in #433 by @Arithmomaniac.
  • Added option to reduce flushing of streams during write operation in #432 by @dxdjgl.
  • Added explicit target for .NET 8 by @aloneguid.

Bug fixes

  • DataFrameMapper returns incompatible DataFrameColumn by @aloneguid (#343).

4.17.0

14 Nov 10:54
Compare
Choose a tag to compare

This is a community bugfix release. As a maintainer I have only approved PRs raised by this wonderful community. Thanks everyone, and keep doing what you do.

Improvements

Bugs fixed

  • Gracefully handle malformed fields with trailing bytes in the data by @mukunku in #413.
  • ParquetSerializer doesn't support different JsonPropertyName and ClrPropertyName on struct fields by @mrinal-thomas in #410.
  • ParquetSerializer can sometimes fail when populating _typeToAssembler cache in parallel by @scottfavre in #420/#411.

4.16.4

11 Sep 13:12
42339e0
Compare
Choose a tag to compare

Class serializer was writing map key as optional (#396). Schema reflector for class serializer now emits non-nullable keys.

Validation for maps keys in schema was also added.