Cloudflare DevelopersCD
Cloudflare Developersโ€ข3y agoโ€ข
3 replies
Phisn

Webassembly in libraries not correctly loading

I am currently working on a project using the npm package "@dimforge/rapier2d". The package can be used in two ways, either using a bundler that resolves the .wasm dependency it is using internally or using the package "@dimforge/rapier2d" where it loads itself from a base64 string.

I am currently using the first version. The code is shared between a frontend vite project and the cloudflare worker project. It works flawlessly with vite. The recommended way of loading the library is using
import("@dimforge/rapier2d")
where it internally loads the .wasm file using
import * as wasm from './rapier_wasm2d_bg.wasm';
(the wasm file does reside in the moment of compilation in the node_modules directory).

When I try to use this library with cloudflare workers it seems to resolve the promise
import("@dimforge/rapier2d")
but webassembly functions are not correctly defined and I get an
is not a function
error for some internal (in rapier) intergration function.

I also previously tried to use the compat package but only get a
blocked by embeddeder
error, because WebAssebmly.instantiate([...]) is not allowed for manual loaded data.

How can I correctly load the webassembly parts from packages I am using or disable the eval content security policy?
Was this page helpful?