5 ms·
WebAssembly Text Code Samples
- segfaultbuserr 3y ago> Back to the original goal of this post. While I enjoy writing WAT code, one aspect of the experience that could be improved is documentation. The WASM spec is much more suitable for formal verification than for actual documentation purposes; specifically, it's hard to grep and doesn't provide much in terms of examples. This is alright for a spec, but I couldn't find complementary resources that just show code samples. I know the pain. One time, I was trying to use an experimental academic research tool. The tool accepts an input file, written in a custom language. The language is fully documented, but the only thing the documentation did was listing the syntax of each command in BNF notation. But at least it had demo code in the repo so you could read code and doc side by side to figure out how the code should look like...
- syrusakbary 3y agoThis is awesome, as it helps Wasm newcomers to overcome the chasm and see what everything is all about with simple examples (although I wished it was a bit more extended!). It's also very true that overall the Wasm docs can use some help. Hopefully we will be able to help with it as part of our work in Wasmer :)
- eliben 3y ago> (although I wished it was a bit more extended!). What additional samples would you like to see in there? > Hopefully we will be able to help with it as part of our work That's great to hear. What are you planning here?
- detrites 3y agoArticle is great, but is quite brief. Good resource with fair bit of detail & examples here: https://developer.mozilla.org/en-US/docs/WebAssembly/Understanding_the_text_format https://developer.mozilla.org/en-US/docs/WebAssembly/Underst...
- irsagent 3y agoThis resource was very helpful as an addendum.
- deleted 3y ago[deleted]
- deleted 3y ago[deleted]
- JasserInicide 3y agoBeen hearing about WASM on here for years now, but it's never about people actually using it. Are there any high-profile cases of it being used?
- lioeters 3y agoOne that comes to mind is the WASM port of FFmpeg: https://github.com/ffmpegwasm/ffmpeg.wasm https://github.com/ffmpegwasm/ffmpeg.wasm Another is the SQLite WASM project: https://sqlite.org/wasm/doc/trunk/index.md https://sqlite.org/wasm/doc/trunk/index.md Also v86 for x86 machine virtualization in the web browser: https://github.com/copy/v86 https://github.com/copy/v86 A fun project is WASM-4, for building retro-style games: https://wasm4.org/ https://wasm4.org/ Possibly more interesting projects to be found here: https://github.com/topics/wasm https://github.com/topics/wasm https://github.com/mbasso/awesome-wasm https://github.com/mbasso/awesome-wasm
- fyrn_ 3y agoZoom uses it quite extensively, Figma is built in it.
- loaph 3y agoMy understanding is that https://photopea.com https://photopea.com (very handy for basic photoshopesque image manipulation) uses it
- fancy_pantser 3y agoDuckDB https://duckdb.org/docs/api/wasm/overview.html https://duckdb.org/docs/api/wasm/overview.html
- nequo 3y agoGoogle Earth in the browser uses WASM too: https://blog.chromium.org/2019/06/webassembly-brings-google-earth-to-more.html https://blog.chromium.org/2019/06/webassembly-brings-google-...
- sp332 3y agoJust to be clear, wasm is usually a compilation target, not someting written by hand like on that site.
- burntcaramel 3y agoThis is fantastic. The specs and the MDN documentation are pretty detailed, but I’ve found I need a fair bit of trial and error to understand some WAT language features. The loop with a block directly inside is a good regular pattern! I’ll be using that all the time now. I’ve been writing an Elixir DSL for WAT. Elixir has a powerful macro system, so I can closer to that pseudo C-syntax in this post, plus some other niceties. I plan to open source it as a library soon. Here are examples I’ve written in it, like an HTML escaper, stateful HTML component, bump allocator, and a few state machines. https://github.com/ComponentsGuide/components_guide/tree/master/lib/components_guide/wasm/examples https://github.com/ComponentsGuide/components_guide/tree/mas...
- Jasper_ 3y agoAt one point I hand-wrote a simple Brainfuck interpreter in both WAT (called WAST at the time...) and asm.js. Both are extremely tedious, but it seems WAT has improved a bit ergonomically since... https://github.com/magcius/bfasm/blob/master/bfasm.js https://github.com/magcius/bfasm/blob/master/bfasm.js https://github.com/magcius/bfasm/blob/master/bfwasm.wast https://github.com/magcius/bfasm/blob/master/bfwasm.wast