parquet2 0.17.2

Safe implementation of parquet IO.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
# Changelog

## [v0.17.2]https://github.com/jorgecarleitao/parquet2/tree/v0.17.2 (2023-04-13)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.17.1...v0.17.2)

**Fixed bugs:**

- Fixed aggregation of max statistics for primitive fields [\#217]https://github.com/jorgecarleitao/parquet2/pull/217 ([tjwilson90]https://github.com/tjwilson90)
- Fix reimport problem and clippy. [\#216]https://github.com/jorgecarleitao/parquet2/pull/216 ([RinChanNOWWW]https://github.com/RinChanNOWWW)
- Bump minimum async-stream version to 0.3.3 [\#212]https://github.com/jorgecarleitao/parquet2/pull/212 ([garrisonhess]https://github.com/garrisonhess)
- Fixed error in rle decoding [\#207]https://github.com/jorgecarleitao/parquet2/pull/207 ([ritchie46]https://github.com/ritchie46)

**Enhancements:**

- Update dependencies + a little cleanup [\#211]https://github.com/jorgecarleitao/parquet2/pull/211 ([aldanor]https://github.com/aldanor)
- Make some struct de/serializable. [\#209]https://github.com/jorgecarleitao/parquet2/pull/209 ([RinChanNOWWW]https://github.com/RinChanNOWWW)
- Removed unnecessary flushes while writing [\#206]https://github.com/jorgecarleitao/parquet2/pull/206 ([cyr]https://github.com/cyr)
- Enbaled setting `selected_rows` in the runtime. [\#205]https://github.com/jorgecarleitao/parquet2/pull/205 ([RinChanNOWWW]https://github.com/RinChanNOWWW)

## [v0.17.1]https://github.com/jorgecarleitao/parquet2/tree/v0.17.1 (2022-12-12)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.17.0...v0.17.1)

**Fixed bugs:**

- Fixed error in rle decoding [\#207]https://github.com/jorgecarleitao/parquet2/pull/207 ([ritchie46]https://github.com/ritchie46)

## [v0.17.0]https://github.com/jorgecarleitao/parquet2/tree/v0.17.0 (2022-11-30)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.16.2...v0.17.0)

**Breaking changes:**

- Improved hybrid rle decoding performance ~-40% [\#203]https://github.com/jorgecarleitao/parquet2/pull/203 ([ritchie46]https://github.com/ritchie46)
- Improved API to read column chunks [\#195]https://github.com/jorgecarleitao/parquet2/pull/195 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Removed `EncodedPage`  [\#191]https://github.com/jorgecarleitao/parquet2/pull/191 ([jorgecarleitao]https://github.com/jorgecarleitao)

**New features:**

- Added `serde` support for `RowGroupMetaData`. [\#202]https://github.com/jorgecarleitao/parquet2/pull/202 ([youngsofun]https://github.com/youngsofun)

**Fixed bugs:**

- Removed un-necessary conversion [\#197]https://github.com/jorgecarleitao/parquet2/pull/197 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Avoid OOM on page streams [\#194]https://github.com/jorgecarleitao/parquet2/pull/194 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Fixed error requiring stats [\#193]https://github.com/jorgecarleitao/parquet2/pull/193 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Enhancements:**

- elide bound check in RLE decoder [\#201]https://github.com/jorgecarleitao/parquet2/pull/201 ([ritchie46]https://github.com/ritchie46)
- Replaced panics by errors on invalid pages [\#188]https://github.com/jorgecarleitao/parquet2/pull/188 ([evanrichter]https://github.com/evanrichter)

## [v0.16.2]https://github.com/jorgecarleitao/parquet2/tree/v0.16.2 (2022-08-19)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.16.1...v0.16.2)

**Fixed bugs:**

- Fixed edge cases in writing delta encoder [\#189]https://github.com/jorgecarleitao/parquet2/pull/189 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Documentation updates:**

- Improved doc generation to include features [\#190]https://github.com/jorgecarleitao/parquet2/pull/190 ([jorgecarleitao]https://github.com/jorgecarleitao)

## [v0.16.1]https://github.com/jorgecarleitao/parquet2/tree/v0.16.1 (2022-08-17)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.16.0...v0.16.1)

**Fixed bugs:**

- Fixed error in `FilteredHybridBitmapIter`'s trait bounds [\#187]https://github.com/jorgecarleitao/parquet2/pull/187 ([jorgecarleitao]https://github.com/jorgecarleitao)

## [v0.16.0]https://github.com/jorgecarleitao/parquet2/tree/v0.16.0 (2022-08-17)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.15.1...v0.16.0)

**Breaking changes:**

- Improved `Error` [\#181]https://github.com/jorgecarleitao/parquet2/pull/181 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Made decoding fallible [\#178]https://github.com/jorgecarleitao/parquet2/pull/178 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Improved bitpacking [\#176]https://github.com/jorgecarleitao/parquet2/pull/176 ([jorgecarleitao]https://github.com/jorgecarleitao)

**New features:**

- Added DELTA\_BYTE\_ARRAY encoder [\#183]https://github.com/jorgecarleitao/parquet2/pull/183 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Fixed bugs:**

- FixedLenByteArray max\_precision integer overflow [\#184]https://github.com/jorgecarleitao/parquet2/pull/184 ([evanrichter]https://github.com/evanrichter)

**Documentation updates:**

- enable `doc_cfg` feature [\#186]https://github.com/jorgecarleitao/parquet2/pull/186 ([ritchie46]https://github.com/ritchie46)
- Improved decoding documentation [\#180]https://github.com/jorgecarleitao/parquet2/pull/180 ([jorgecarleitao]https://github.com/jorgecarleitao)

## [v0.15.1]https://github.com/jorgecarleitao/parquet2/tree/v0.15.1 (2022-08-14)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.15.0...v0.15.1)

**Fixed bugs:**

- Fixed error in encoding large bitpacked deltas [\#179]https://github.com/jorgecarleitao/parquet2/pull/179 ([jorgecarleitao]https://github.com/jorgecarleitao)

## [v0.15.1]https://github.com/jorgecarleitao/parquet2/tree/v0.15.1 (2022-08-14)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.15.0...v0.15.1)

**Fixed bugs:**

- Fixed error in encoding large bitpacked deltas [\#179]https://github.com/jorgecarleitao/parquet2/pull/179 ([jorgecarleitao]https://github.com/jorgecarleitao)

## [v0.15.0]https://github.com/jorgecarleitao/parquet2/tree/v0.15.0 (2022-08-10)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.14.2...v0.15.0)

**Breaking changes:**

- Add `max_size` to `get_page_stream` and `get_page_iterator`  [\#173]https://github.com/jorgecarleitao/parquet2/issues/173
- Optional `async` [\#174]https://github.com/jorgecarleitao/parquet2/pull/174 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Privatized `CompressionLevel` [\#170]https://github.com/jorgecarleitao/parquet2/pull/170 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Delay deserialization of dictionary pages [\#160]https://github.com/jorgecarleitao/parquet2/pull/160 ([jorgecarleitao]https://github.com/jorgecarleitao)

**New features:**

- Added feature flag to use zlib-ng backend for gzip [\#165]https://github.com/jorgecarleitao/parquet2/pull/165 ([ritchie46]https://github.com/ritchie46)

**Fixed bugs:**

- Fixed OOM on malicious/malformed thrift [\#172]https://github.com/jorgecarleitao/parquet2/pull/172 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Enhancements:**

- Made `compute_page_row_intervals` public [\#171]https://github.com/jorgecarleitao/parquet2/pull/171 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Simplified interal code [\#168]https://github.com/jorgecarleitao/parquet2/pull/168 ([jorgecarleitao]https://github.com/jorgecarleitao)
- cargo fmt [\#166]https://github.com/jorgecarleitao/parquet2/pull/166 ([ritchie46]https://github.com/ritchie46)

**Testing updates:**

- Improved coverage report [\#175]https://github.com/jorgecarleitao/parquet2/pull/175 ([jorgecarleitao]https://github.com/jorgecarleitao)

## [v0.14.2]https://github.com/jorgecarleitao/parquet2/tree/v0.14.2 (2022-07-26)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.14.1...v0.14.2)

**Fixed bugs:**

- Fixed FileStreamer's end method to flush Parquet magic [\#163]https://github.com/jorgecarleitao/parquet2/pull/163 ([v0y4g3r]https://github.com/v0y4g3r)
- Fix compilation of parquet-tools [\#161]https://github.com/jorgecarleitao/parquet2/pull/161 ([jhorstmann]https://github.com/jhorstmann)

**Enhancements:**

- Added `Compressor::into_inner` [\#158]https://github.com/jorgecarleitao/parquet2/pull/158 ([jorgecarleitao]https://github.com/jorgecarleitao)

## [v0.14.1]https://github.com/jorgecarleitao/parquet2/tree/v0.14.1 (2022-07-02)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.14.0...v0.14.1)

**New features:**

- Added support for legacy lz4 decompression [\#151]https://github.com/jorgecarleitao/parquet2/pull/151 ([dantengsky]https://github.com/dantengsky)

**Enhancements:**

- Improved performance of reading [\#157]https://github.com/jorgecarleitao/parquet2/pull/157 ([jorgecarleitao]https://github.com/jorgecarleitao)

## [v0.14.0]https://github.com/jorgecarleitao/parquet2/tree/v0.14.0 (2022-06-27)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.13.2...v0.14.0)

**Breaking changes:**

- `split_buffer` should return `Result` [\#156]https://github.com/jorgecarleitao/parquet2/issues/156

**Fixed bugs:**

- Removed panics on read [\#150]https://github.com/jorgecarleitao/parquet2/pull/150 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Enhancements:**

- Reduced reallocations [\#153]https://github.com/jorgecarleitao/parquet2/pull/153 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Removed `AsyncSeek` requirement from page stream [\#149]https://github.com/jorgecarleitao/parquet2/pull/149 ([medwards]https://github.com/medwards)

## [v0.13.2]https://github.com/jorgecarleitao/parquet2/tree/v0.13.2 (2022-06-10)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.13.1...v0.13.2)

**Fixed bugs:**

- Fixed missing re-export of `FileMetaData` to allow using side-car API [\#148]https://github.com/jorgecarleitao/parquet2/pull/148 ([jorgecarleitao]https://github.com/jorgecarleitao)

## [v0.13.1]https://github.com/jorgecarleitao/parquet2/tree/v0.13.1 (2022-06-10)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.13.0...v0.13.1)

**New features:**

- Added support to write sidecar [\#147]https://github.com/jorgecarleitao/parquet2/pull/147 ([jorgecarleitao]https://github.com/jorgecarleitao)

## [v0.13.0]https://github.com/jorgecarleitao/parquet2/tree/v0.13.0 (2022-05-31)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.12.1...v0.13.0)

**Breaking changes:**

- Removed unused cargo feature [\#145]https://github.com/jorgecarleitao/parquet2/pull/145 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Fix potential misuse of FileWriter API's \(sync + async\) [\#138]https://github.com/jorgecarleitao/parquet2/pull/138 ([TurnOfACard]https://github.com/TurnOfACard)

**New features:**

- Added new\_with\_page\_meta to PageReader [\#136]https://github.com/jorgecarleitao/parquet2/pull/136 ([ygf11]https://github.com/ygf11)
- Added compression options/levels for GZIP and BROTLI codecs. [\#132]https://github.com/jorgecarleitao/parquet2/pull/132 ([TurnOfACard]https://github.com/TurnOfACard)

**Fixed bugs:**

- Async FileStreamer does not write statistics [\#139]https://github.com/jorgecarleitao/parquet2/issues/139
- Fixed error in compressing lz4raw with large offsets [\#140]https://github.com/jorgecarleitao/parquet2/pull/140 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Enhancements:**

- Improved read of metadata [\#143]https://github.com/jorgecarleitao/parquet2/pull/143 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Simplified async metadata read [\#137]https://github.com/jorgecarleitao/parquet2/pull/137 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Testing updates:**

- Lifted duplicated code to a function [\#141]https://github.com/jorgecarleitao/parquet2/pull/141 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Improved Integration test documentation and expanded tests [\#133]https://github.com/jorgecarleitao/parquet2/pull/133 ([TurnOfACard]https://github.com/TurnOfACard)

## [v0.12.1]https://github.com/jorgecarleitao/parquet2/tree/v0.12.1 (2022-05-15)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.12.0...v0.12.1)

**Enhancements:**

- Pass only necessary data when create PageReader [\#135]https://github.com/jorgecarleitao/parquet2/issues/135

## [v0.12.0]https://github.com/jorgecarleitao/parquet2/tree/v0.12.0 (2022-04-22)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.11.0...v0.12.0)

**Breaking changes:**

- Add `CompressionOptions`, which allows for zstd compression levels. [\#128]https://github.com/jorgecarleitao/parquet2/pull/128 ([TurnOfACard]https://github.com/TurnOfACard)

**Enhancements:**

- Improved performance of RLE decoding \(-18%\) [\#130]https://github.com/jorgecarleitao/parquet2/pull/130 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Improved perf of bitpacking decoding \(3.5x\) [\#129]https://github.com/jorgecarleitao/parquet2/pull/129 ([jorgecarleitao]https://github.com/jorgecarleitao)

## [v0.11.0]https://github.com/jorgecarleitao/parquet2/tree/v0.11.0 (2022-04-15)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.10.3...v0.11.0)

**Breaking changes:**

- Renamed `ParquetError` to `Error` [\#109]https://github.com/jorgecarleitao/parquet2/issues/109
- Made `.end` not consume the parquet `FileWriter` [\#127]https://github.com/jorgecarleitao/parquet2/pull/127 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Removed `compression` from `WriteOptions` [\#125]https://github.com/jorgecarleitao/parquet2/pull/125 ([kornholi]https://github.com/kornholi)
- Simplified API and converted some panics on read to errors [\#112]https://github.com/jorgecarleitao/parquet2/pull/112 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Improved typing to reduce clones and use of unwraps [\#106]https://github.com/jorgecarleitao/parquet2/pull/106 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Simplified `PageIterator` [\#103]https://github.com/jorgecarleitao/parquet2/pull/103 ([jorgecarleitao]https://github.com/jorgecarleitao)

**New features:**

- Added support for page-level filter pushdown \(indexes\) [\#102]https://github.com/jorgecarleitao/parquet2/issues/102
- Added support for bloom filters [\#98]https://github.com/jorgecarleitao/parquet2/issues/98
- Added optional support for LZ4 via LZ4-flex crate \(thus enabling wasm\) [\#124]https://github.com/jorgecarleitao/parquet2/pull/124 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added support for page-level filter pushdown \(column and offset indexes\) [\#107]https://github.com/jorgecarleitao/parquet2/pull/107 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added support to read column and page indexes [\#100]https://github.com/jorgecarleitao/parquet2/pull/100 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Fixed bugs:**

- Fixed minimum version for LZ4 [\#122]https://github.com/jorgecarleitao/parquet2/pull/122 ([kornholi]https://github.com/kornholi)
- Fixed Lz4Raw compression error \(if input is tiny\)  [\#118]https://github.com/jorgecarleitao/parquet2/pull/118 ([dantengsky]https://github.com/dantengsky)
- Fixed LZ4 [\#95]https://github.com/jorgecarleitao/parquet2/pull/95 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Enhancements:**

- Made offsets be always written [\#123]https://github.com/jorgecarleitao/parquet2/pull/123 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added specialized deserialization of one-level filtered pages [\#120]https://github.com/jorgecarleitao/parquet2/pull/120 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added support to read and use bloom filters [\#99]https://github.com/jorgecarleitao/parquet2/pull/99 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added `ordinal` and `total_compressed_size` to column meta [\#96]https://github.com/jorgecarleitao/parquet2/pull/96 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added non-consuming function to get values of delta-decoder [\#94]https://github.com/jorgecarleitao/parquet2/pull/94 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Disabled bitpacking default-features and upgraded to edition 2021 [\#93]https://github.com/jorgecarleitao/parquet2/pull/93 ([light4]https://github.com/light4)

**Documentation updates:**

- Fix deployment of guide [\#115]https://github.com/jorgecarleitao/parquet2/pull/115 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Testing updates:**

- Added tests for reducing statistics [\#116]https://github.com/jorgecarleitao/parquet2/pull/116 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Simplified tests [\#104]https://github.com/jorgecarleitao/parquet2/pull/104 ([jorgecarleitao]https://github.com/jorgecarleitao)

## [v0.10.3]https://github.com/jorgecarleitao/parquet2/tree/v0.10.3 (2022-03-03)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.10.2...v0.10.3)

**Fixed bugs:**

- write ColumnMetaData instead of ColumnChunk after pages. [\#90]https://github.com/jorgecarleitao/parquet2/pull/90 ([youngsofun]https://github.com/youngsofun)

## [v0.10.2]https://github.com/jorgecarleitao/parquet2/tree/v0.10.2 (2022-02-14)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.10.1...v0.10.2)

**Fixed bugs:**

- Raise error when writing a page that is too large [\#84]https://github.com/jorgecarleitao/parquet2/pull/84 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Testing updates:**

- fix fmt and typo [\#83]https://github.com/jorgecarleitao/parquet2/pull/83 ([youngsofun]https://github.com/youngsofun)

## [v0.10.1]https://github.com/jorgecarleitao/parquet2/tree/v0.10.1 (2022-02-12)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.10.0...v0.10.1)

**Enhancements:**

- Update zstd dependency [\#82]https://github.com/jorgecarleitao/parquet2/pull/82 ([jhorstmann]https://github.com/jhorstmann)
- Added file offset [\#81]https://github.com/jorgecarleitao/parquet2/pull/81 ([barrotsteindev]https://github.com/barrotsteindev)

## [v0.10.0]https://github.com/jorgecarleitao/parquet2/tree/v0.10.0 (2022-02-02)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.9.2...v0.10.0)

**Breaking changes:**

- Simplified API to write files [\#78]https://github.com/jorgecarleitao/parquet2/pull/78 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Fixed bugs:**

- Fixed panic in reading empty values in hybrid-RLE [\#80]https://github.com/jorgecarleitao/parquet2/pull/80 ([jorgecarleitao]https://github.com/jorgecarleitao)

## [v0.9.2]https://github.com/jorgecarleitao/parquet2/tree/v0.9.2 (2022-01-25)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.9.0...v0.9.2)

**Fixed bugs:**

- Fixed panic in reading empty values in hybrid-RLE [\#80]https://github.com/jorgecarleitao/parquet2/pull/80 ([jorgecarleitao]https://github.com/jorgecarleitao)

## [v0.9.0]https://github.com/jorgecarleitao/parquet2/tree/v0.9.0 (2022-01-11)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.8.0...v0.9.0)

**Breaking changes:**

- Changed stream of groups to stream of futures of groups [\#71]https://github.com/jorgecarleitao/parquet2/pull/71 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Enhancements:**

- bitpacking: use stack-allocated temporary buffer [\#76]https://github.com/jorgecarleitao/parquet2/pull/76 ([danburkert]https://github.com/danburkert)
- Added constructor to `RowGroupMetaData` and `ColumnChunkMetaData` [\#74]https://github.com/jorgecarleitao/parquet2/pull/74 ([yjshen]https://github.com/yjshen)
- Improved performance of reading multiple pages [\#73]https://github.com/jorgecarleitao/parquet2/pull/73 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Fixed bugs:**

- Fixed error in declaring size of compressed dict page. [\#72]https://github.com/jorgecarleitao/parquet2/pull/72 ([jorgecarleitao]https://github.com/jorgecarleitao)

## [v0.8.1]https://github.com/jorgecarleitao/parquet2/tree/v0.8.1 (2021-12-09)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.8.0...v0.8.1)

**Fixed bugs:**

- Fixed error in declaring size of compressed dict page. [\#72]https://github.com/jorgecarleitao/parquet2/pull/72 ([jorgecarleitao]https://github.com/jorgecarleitao)

## [v0.8.0]https://github.com/jorgecarleitao/parquet2/tree/v0.8.0 (2021-11-24)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.7.0...v0.8.0)

**Breaking changes:**

- Improved error message when a feature is not active [\#69]https://github.com/jorgecarleitao/parquet2/pull/69 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Fixed bugs:**

- Fixed error in finishing iterator. [\#68]https://github.com/jorgecarleitao/parquet2/pull/68 ([jorgecarleitao]https://github.com/jorgecarleitao)

## [v0.7.0]https://github.com/jorgecarleitao/parquet2/tree/v0.7.0 (2021-11-13)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.6.0...v0.7.0)

**Breaking changes:**

- Use `i64`s for delta-bitpacked's interface [\#67]https://github.com/jorgecarleitao/parquet2/pull/67 ([kornholi]https://github.com/kornholi)

**New features:**

- Added basic support to read nested types [\#64]https://github.com/jorgecarleitao/parquet2/pull/64 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Fixed bugs:**

- Fix off-by-one error in delta-bitpacked decoder [\#66]https://github.com/jorgecarleitao/parquet2/pull/66 ([kornholi]https://github.com/kornholi)

## [v0.6.0]https://github.com/jorgecarleitao/parquet2/tree/v0.6.0 (2021-10-18)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.5.0...v0.6.0)

**Breaking changes:**

- Improved performance of codec initialization [\#63]https://github.com/jorgecarleitao/parquet2/pull/63 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Made `PageFilter` `Send` [\#62]https://github.com/jorgecarleitao/parquet2/pull/62 ([dantengsky]https://github.com/dantengsky)
- Alowed reusing compression buffer [\#60]https://github.com/jorgecarleitao/parquet2/pull/60 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Fixed bugs:**

- Fixed delta-bitpacked mini-block decoding [\#56]https://github.com/jorgecarleitao/parquet2/pull/56 ([kornholi]https://github.com/kornholi)
- Add descriptor to `FixedLenStatistics` [\#54]https://github.com/jorgecarleitao/parquet2/pull/54 ([potter420]https://github.com/potter420)
- Fixed error in reading zero-width bit from hybrid RLE. [\#53]https://github.com/jorgecarleitao/parquet2/pull/53 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Enhancements:**

- Added writing reduced statistics for `FixedLenByteArray` [\#55]https://github.com/jorgecarleitao/parquet2/pull/55 ([potter420]https://github.com/potter420)

## [v0.5.2]https://github.com/jorgecarleitao/parquet2/tree/v0.5.2 (2021-10-06)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.5.1...v0.5.2)

**Fixed bugs:**

- Fixed delta-bitpacked mini-block decoding [\#56]https://github.com/jorgecarleitao/parquet2/pull/56 ([kornholi]https://github.com/kornholi)
- Add descriptor to `FixedLenStatistics` [\#54]https://github.com/jorgecarleitao/parquet2/pull/54 ([potter420]https://github.com/potter420)

**Enhancements:**

- Added writing reduced statistics for `FixedLenByteArray` [\#55]https://github.com/jorgecarleitao/parquet2/pull/55 ([potter420]https://github.com/potter420)

## [v0.5.1]https://github.com/jorgecarleitao/parquet2/tree/v0.5.1 (2021-09-29)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.5.0...v0.5.1)

**Fixed bugs:**

- Fixed error in reading zero-width bit from hybrid RLE. [\#53]https://github.com/jorgecarleitao/parquet2/pull/53 ([jorgecarleitao]https://github.com/jorgecarleitao)

## [v0.5.0]https://github.com/jorgecarleitao/parquet2/tree/v0.5.0 (2021-09-18)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.4.0...v0.5.0)

**Breaking changes:**

- Renamed `Compression::Zsld` to `Compression::Zstd` \(typo\) [\#48]https://github.com/jorgecarleitao/parquet2/pull/48 ([vincev]https://github.com/vincev)

**Enhancements:**

- Add `null_count` method to trait `Statistics` [\#49]https://github.com/jorgecarleitao/parquet2/pull/49 ([yjshen]https://github.com/yjshen)

## [v0.4.0]https://github.com/jorgecarleitao/parquet2/tree/v0.4.0 (2021-08-28)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.3.0...v0.4.0)

**Breaking changes:**

- Make `write_*` return the number of written bytes. [\#45]https://github.com/jorgecarleitao/parquet2/issues/45
- move `HybridRleDecoder` from `read::levels` to `encoding::hybrid_rle` [\#41]https://github.com/jorgecarleitao/parquet2/issues/41
- Simplified split of page buffer [\#37]https://github.com/jorgecarleitao/parquet2/pull/37 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Simplified API to get page iterator [\#36]https://github.com/jorgecarleitao/parquet2/pull/36 ([jorgecarleitao]https://github.com/jorgecarleitao)

**New features:**

- Added support to write to async writers. [\#35]https://github.com/jorgecarleitao/parquet2/pull/35 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Fixed bugs:**

- Fixed edge case of a small bitpacked. [\#43]https://github.com/jorgecarleitao/parquet2/pull/43 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Fixed error in decoding RLE-hybrid. [\#40]https://github.com/jorgecarleitao/parquet2/pull/40 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Enhancements:**

- Removed requirement of "Seek" on write. [\#44]https://github.com/jorgecarleitao/parquet2/pull/44 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Documentation updates:**

- Added guide to read [\#38]https://github.com/jorgecarleitao/parquet2/pull/38 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Testing updates:**

- Made tests deserializer use the correct decoder. [\#46]https://github.com/jorgecarleitao/parquet2/pull/46 ([jorgecarleitao]https://github.com/jorgecarleitao)

## [v0.3.0]https://github.com/jorgecarleitao/parquet2/tree/v0.3.0 (2021-08-09)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.2.0...v0.3.0)

**Breaking changes:**

- Added option to apply filter pushdown to data pages. [\#34]https://github.com/jorgecarleitao/parquet2/pull/34 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Add support to read async [\#33]https://github.com/jorgecarleitao/parquet2/pull/33 ([jorgecarleitao]https://github.com/jorgecarleitao)

**New features:**

- Add support for async read [\#32]https://github.com/jorgecarleitao/parquet2/issues/32
- Added option to apply filter pushdown to data pages. [\#34]https://github.com/jorgecarleitao/parquet2/pull/34 ([jorgecarleitao]https://github.com/jorgecarleitao)

## [v0.2.0]https://github.com/jorgecarleitao/parquet2/tree/v0.2.0 (2021-08-03)

[Full Changelog](https://github.com/jorgecarleitao/parquet2/compare/v0.1.0...v0.2.0)

**Enhancements:**

- Add support to write dictionary-encoded pages [\#29]https://github.com/jorgecarleitao/parquet2/issues/29
- Upgrade zstd to ^0.9 [\#31]https://github.com/jorgecarleitao/parquet2/pull/31 ([Dandandan]https://github.com/Dandandan)



\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*