mirror of
https://github.com/asadbek064/hyparquet-compressors.git
synced 2026-01-11 21:26:38 +00:00
Brotli
This commit is contained in:
parent
3f956e2862
commit
03befc14a5
@ -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
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))
|
||||
} })
|
||||
})
|
||||
})
|
||||
22
test/files/brotli_compressed.json
Normal file
22
test/files/brotli_compressed.json
Normal file
@ -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
|
||||
]
|
||||
]
|
||||
BIN
test/files/brotli_compressed.parquet
Normal file
BIN
test/files/brotli_compressed.parquet
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user