This commit is contained in:
Kenny Daniel 2024-05-19 21:38:13 -07:00
parent 3f956e2862
commit 03befc14a5
No known key found for this signature in database
GPG Key ID: 90AB653A8CAD7E45
6 changed files with 47 additions and 1 deletions

@ -26,13 +26,16 @@
"test": "vitest run"
},
"dependencies": {
"brotli": "1.3.3",
"hysnappy": "0.3.1",
"pako": "2.1.0"
},
"devDependencies": {
"@babel/eslint-parser": "7.24.5",
"@rollup/plugin-commonjs": "25.0.7",
"@rollup/plugin-node-resolve": "15.2.3",
"@rollup/plugin-terser": "0.4.4",
"@types/brotli": "1.3.4",
"@types/node": "20.12.12",
"@types/pako": "2.0.3",
"@vitest/coverage-v8": "1.6.0",

@ -1,3 +1,4 @@
import commonjs from '@rollup/plugin-commonjs'
import resolve from '@rollup/plugin-node-resolve'
import terser from '@rollup/plugin-terser'
@ -10,6 +11,7 @@ export default {
},
plugins: [
resolve(), // resolve node dependencies
commonjs(), // convert commonjs to es6
terser(), // minify
],
}

@ -1,3 +1,5 @@
// @ts-ignore
import BROTLI from 'brotli/decompress'
import { snappyUncompressor } from 'hysnappy'
import pako from 'pako'
import { LZ4, LZ4_RAW } from './lz4.js'
@ -8,7 +10,7 @@ import { LZ4, LZ4_RAW } from './lz4.js'
export const compressors = {
SNAPPY: snappyUncompressor(),
GZIP: input => pako.ungzip(input),
BROTLI: () => new Uint8Array(), // TODO
BROTLI,
ZSTD: () => new Uint8Array(), // TODO
LZ4,
LZ4_RAW,

17
test/brotli.test.js Normal file

@ -0,0 +1,17 @@
import fs from 'fs'
import { parquetRead, toJson } from 'hyparquet'
import { describe, expect, it } from 'vitest'
import { compressors } from '../src/index.js'
describe('brotli compressor', () => {
it('read brotli compressed parquet file brotli_compressed', async () => {
const buffer = fs.readFileSync('test/files/brotli_compressed.parquet')
const file = new Uint8Array(buffer).buffer
const expected = fs.readFileSync('test/files/brotli_compressed.json').toString()
await parquetRead({ file, compressors, onComplete: data => {
expect(data.length).toBe(4)
expect(toJson(data)).toEqual(JSON.parse(expected))
} })
})
})

@ -0,0 +1,22 @@
[
[
1593604800,
[97, 98, 99],
42
],
[
1593604800,
[100, 101, 102],
7.7
],
[
1593604801,
[97, 98, 99],
42.125
],
[
1593604801,
[100, 101, 102],
7.7
]
]

Binary file not shown.