Parquet reader/writer for MoonBit.
Dependencies
just bench-compare-all
just bench-compare-rust| benchmark | moon(js) | moon(wasm-gc) | moon(native) | rust |
|---|---|---|---|---|
| read delta binary packed benchmark | 512.22 us | 127.01 us | 645.99 us | 203.85 us |
| read int32 null pages benchmark | 17.34 us | 10.85 us | 43.60 us | 7.61 us |
| read fixed length byte array benchmark | 87.17 us | 10.41 us | 54.68 us | unsupported |
| read alltypes plain benchmark | 20.49 us | 12.02 us | 45.42 us | 19.57 us |
| read alltypes dictionary benchmark | 16.83 us | 11.04 us | 42.53 us | 17.31 us |
| read int96 from spark benchmark | 10.90 us | 3.52 us | 16.19 us | 3.28 us |
| read empty snappy datapage v2 benchmark | 3.46 us | 1.72 us | 6.27 us | 2.58 us |
just # check + test
just target=js bench
just target=wasm-gc bench
just target=native bench
just bench-compare-all
just e2e-duckdb
moon infopub(all) suberror ParquetError {
InvalidData(String)
Unsupported(String)
Io(String)
}pub(all) enum ColumnType {
Boolean
Int32
Int64
TimestampMicros
Float
Double
String
Binary
}pub(all) enum ParquetColumnData {
Values(Array[Value])
BooleanValues(Array[Bool])
Int32Values(Array[Int])
NullableInt32Values(Array[Int?])
Int64Values(Array[Int64])
NullableInt64Values(Array[Int64?])
TimestampMicrosValues(Array[Int64])
NullableTimestampMicrosValues(Array[Int64?])
FloatValues(Array[Float])
DoubleValues(Array[Double])
Utf8Values(Array[Bytes])
NullableUtf8Values(Array[Bytes?])
BinaryValues(Array[Bytes])
NullableBinaryValues(Array[Bytes?])
}impl Eq for ParquetColumnDataimpl Show for ParquetColumnDataimpl Eq for ParquetColumnarFileimpl Show for ParquetColumnarFilepub(all) enum Repetition {
Required
Optional
Repeated
}pub(all) enum Value {
Boolean(Bool)
Int32(Int)
Int64(Int64)
TimestampMicros(Int64)
Float(Float)
Double(Double)
String(String)
Binary(Bytes)
Null
}fn new_parquet_columnar_file(columns : Array[Column], column_data : Array[ParquetColumnData], row_count : Int, created_by : String?) -> ParquetColumnarFileParquet reader/writer for MoonBit.
Dependencies