Jaccwabyt, a semi-acronym for "JavaScript ⇄ C Struct Communication via WASM Byte Arrays", is a plain-vanilla JavaScript toolkit which enables JS code to interact with C structs hosted in WASM memory.
It uses JSON-format models of C structs to create dynamic proxies of those structs in JS, then provides member accessor proxies so that reading and writing the struct members from JS will read/write from/to the C-side structs (living in WASM memory).
It can both create new instances of its mapped structs (backed by the WASM heap) or proxy instances managed by native code (in the WASM heap or stack). It is, however, limited to a single layer of struct - it currently has no mechanisms for automating access to nested structs for the simple reason that that feature has never been necessary in the context of...
Jaccwabyt was created in conjunction with the sqlite project's JS/WASM layer (<https://sqlite.org/wasm>), and is maintained hand-in-hand with that project, but is hosted as a standalone project because it has no specific dependency on that project. It has been a central component of the sqlite project's JS API since mid-2022 and is known to work hassle-free so long as it's used properly.
Jaccwabyt has no dependency on Emscripten. It is configurable so that it can work any WASM glue-code layer which can provide it with a WASM heap and alloc/dealloc functions which operate on that heap.