[ https://issues.apache.org/jira/browse/ARROW-8674?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17523985#comment-17523985 ]
Dominik Moritz commented on ARROW-8674: --------------------------------------- > For one, gzip compression is much slower than LZ4 or ZSTD compression. Maybe. Let's make sure to compare native gzip compression that a web server uses with js lz4/zstd compression. > I think it would be possible to force the `compress` and `decompress` > functions in the plugin system to be synchronous. That would just force the > user to finish any async initialization before trying to read/write a file, > since wasm bundles can't be instantiated synchronously I think. It would unfortunately also preclude people from putting decompression into a worker. Maybe we can make the relevant IPC methods return return promises when the compression/decompression method is async (returns a promise). > None of the ZSTD libraries I came across were pure JS. The only LZ4 one that > was pure JS was lz4js. We could consider inlining the wasm code with base64 if it's tiny but I suspect it will not. Worth considering, though. Anyway, I think it makes sense to work on this and send a pull request. We should definitely have a way to pass in/register compression algorithms. Then let's look into whether we want to bundle any algorithms. Let's start with lz4 and try a few libraries (e.g. https://github.com/gorhill/lz4-wasm, https://github.com/Benzinga/lz4js, https://github.com/pierrec/node-lz4). If they are small enough, I would consider including a default lz4 implementation. Sounds good? > [JS] Implement IPC RecordBatch body buffer compression from ARROW-300 > --------------------------------------------------------------------- > > Key: ARROW-8674 > URL: https://issues.apache.org/jira/browse/ARROW-8674 > Project: Apache Arrow > Issue Type: Sub-task > Components: JavaScript > Reporter: Wes McKinney > Priority: Major > > This may not be a hard requirement for JS because this would require pulling > in implementations of LZ4 and ZSTD which not all users may want -- This message was sent by Atlassian Jira (v8.20.1#820001)