Compression Plugins in h5wasm (javascript/webassembly)

19 Sept 2023, 15:30
30m
Main auditorium, building 5 (DESY)

Main auditorium, building 5

DESY

Notkestrasse 85, 22607 Hamburg, Germany
Submitted talk Day 1

Speaker

Brian Maranville (NIST)

Description

H5wasm is a webassembly-based library for reading and writing HDF5 files, which can be used natively in a web browser or in a local nodejs environment. The library has no external runtime dependencies, and is used in some online HDF5 viewers that don't require server-side processing: https://h5web.panosc.eu/h5wasm and https://myhdf5.hdfgroup.org/

The community has requested more compression plugins (e.g. ZSTANDARD) for h5wasm beyond the (included) DEFLATE, SHUFFLE, FLETCHER32 and SCALEOFFSET filters. In my talk I will discuss issues associated with adding plugins to h5wasm
For collaborative work on h5wasm, a change from single-maintainer in a private organization (github/usnistgov)
Incomplete support for dynamic linking in emscripten (MAIN_MODULE/SIDE_MODULE)
Complex dependency chains for some plugins (all libraries have to be compiled to WASM)
Browser limitations (e.g. max 4KB dynamic WASM loading in Chrome)
I will demonstrate a proof-of-concept build of h5wasm including a ZSTANDARD plugin, and discuss why I was not able to easily build an LZ4 plugin.
We can discuss a shared effort on building a repository for h5wasm like the the h5py plugins at https://github.com/silx-kit/hdf5plugin, also based on https://github.com/HDFGroup/hdf5_plugins. We could use people with skills in CMake, Emscripten, TypeScript and of course the HDF5 C API.

Primary author

Presentation materials