Watgo – A WebAssembly Toolkit for Go

111 points
1/21/1970
4 days ago
by ibobev

Comments


ncruces

I need to check their harness, compare it to wazero's and my own (wasm2go)

Btw, if Eli reads this: thanks for the WAT samples, they were very helpful working on wasm2go!

4 days ago

eliben

You're welcome :)

The harnesses are documented here: https://github.com/eliben/watgo/tree/main/tests

Note that I had to switch the harness from wazero to Node (unfortunately!) when it turned out wazero doesn't support gc and other new proposals (e.g. your comment here https://github.com/wazero/wazero/issues/2483)

Thank you very much for maintaining wazero - I love that project, and am looking forward to being able to use it for this in the future.

4 days ago

evacchi

I'm working on EH right now! Slowly walking towards GC!!

4 days ago

ncruces

You're welcome :)

evacchi does most of the maintaining these days, but I'll keep helping as best as I can.

Your harness looks interesting to replace wast2json with watgo in wasm2go. Though my current problem is that I should be using the JSON to decide which tests to run (manual process so far), and to generate the more complicated test files (e.g. the ones that link modules together).

4 days ago

evacchi

Nah that would be unfair to you (you are often doing a lot of grunt maintenance work!! Plus getting me out of many tarpits when we chat) and the rest of the maintainers!

3 days ago

pasxizeis

I followed the same testing approach when writing a Wasm binary parser (technically, a decoder)[0].

It was pretty helpful having the official spec suite available and a major boost of confidence that your parser is compliant.

Nevertheless, it was my own tests that found a regression in the latest published version of the spec[1], which shows how important it is to have a variety of implementations.

[0] https://github.com/agis/wadec

[1] https://github.com/WebAssembly/spec/issues/2066

3 days ago

igtumt

This looks really useful for pre-runtime inspection of WASM modules. Are you using it for any security or sandboxing use cases?

4 days ago

wtbland

This is a really interesting project. The ability to inspect and manipulate Wasm modules at runtime opens up a lot of possibilities for debugging and tooling. Curious whether you've benchmarked the overhead of the toolkit itself on larger Go-compiled Wasm binaries?

3 days ago