1eebc65c9ebf1ca266e0e82baa312f6598c22153
Currently we don't actually sandbox the memory at all, so you can do evil things like read and write the host's memory. We also don't support growing memory or cranelift-compatible ABI that passes the memory offset as an argument. We also always immediately allocate the buffer when encountering a memory section, there is preliminary support for translating a buffer which can then have the real offset replaced using relocations (and returning a different type when doing so) but I haven't written the code that actually does relocation so it doesn't work yet.
Lightbeam
This is an early-stage experimental project to build a single-pass linear-time wasm-function-to-machine-code translator.
It's currently built with dynasm and targets x86-64, however the function_body.rs/backend.rs split is likely to evolve towards a configuration point allowing other targets or even other assemblers to be supported.
It's a very early stage project, and a good one for learning how WebAssembly works at a low level, for learning assembly programming, or both! And we're happy to mentor. So welcome, and check out the issue tracker to see what's happening and how to get involved!
Description
Languages
Rust
77.8%
WebAssembly
20.6%
C
1.3%