hash-wasm icon indicating copy to clipboard operation
hash-wasm copied to clipboard

Consider shipping wasm files to npm

Open TzviPM opened this issue 6 months ago • 2 comments

I'm trying to use hash-wasm's argon2 implementation with Vercel's Edge runtime and running into an compilation error. It seems hash-wasm's dist files include a hard-coded string of the wasm base64-encoded and then run through WebAssembly.compile. Dynamic code evaluation isn't supported in that runtime (https://nextjs.org/docs/messages/edge-dynamic-code-evaluation).

Wasm files can be imported differently and handled by nextjs during bundling (ex. import someWasm from './some.wasm?module') but the wasm outputs from hash-wasm don't seem to be shipped as independant artifacts with the library code.

I imagine having access to the wasm files could be useful for other situations as well.

Would you be open to a PR to add this?

TzviPM avatar Dec 07 '23 17:12 TzviPM

Implementing alternative ways of loading binaries would increase the complexity of the library and I want to avoid that. Cloudflare and Vercel requires a non-standard way of loading WASM binaries. At this moment I consider it something that needs to be fixed on their side by allowing all standardized ECMAScript / WASM APIs to work properly.

Daninet avatar Dec 07 '23 19:12 Daninet

If anyone really needs it and can't wait for Vercel and CF to change their ways, I've just made a (little hacky) fork that is runnable on Vercel Edge and CF Workers. 😄

ComicScrip avatar Apr 02 '24 15:04 ComicScrip