rusty-wacc-viewer
watt
rusty-wacc-viewer | watt | |
---|---|---|
1 | 21 | |
- | 1,222 | |
- | - | |
- | 7.3 | |
- | 17 days ago | |
Rust | ||
- | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
rusty-wacc-viewer
-
Why WebAssembly is innovative even outside the browser
While a "host" application (for the WASM runtime used) is required to enable access to graphical output (or user input) it doesn't have to be a browser.
At the (almost) most basic level a chunk of memory can be used as a framebuffer--the host application would read the pixel data which the WASM bytecode wrote and then write it to the host display via OS-level routines.
There are some plans/experiments at making a framebuffer "device" available as part of WASI.
I've written a couple of graphical WASM host applications that aren't browsers (and which don't use memory for pixel data transfer just integer values returned from a function):
The "WebAssembly Calling Card (WACC) Viewer" is implemented via the Godot game engine and an addon that integrates the Wasmtime WASM runtime with the engine: https://wacc.rancidbacon.com
(Also implemented a WACC Viewer in Rust: https://gitlab.com/RancidBacon/rusty-wacc-viewer)
WACC specifies how to transform three integer values (returned from a function in a WASM module) into a coloured triangle in order to render it on screen.
Another "host application" I implemented was a libretro compatible plugin that loads a WASM module and then feeds the module with input from libretro & retrieves framebuffer pixel data (one pixel at a time :D ) via a WASM function call & writes it to the libretro framebuffer for display.
watt
-
Rust devs push back as Serde project ships precompiled binaries
The precompiled binary is not a sandboxed WASM binary. Despite the name "watt" it has nothing to do with https://github.com/dtolnay/watt . You can look at the actual code to see for yourself.
- Arbitrary code execution during compilation – rust
-
syn v2.0.0 released
* Related: watt is one approach to pre-compile proc-macro crates using WASM.
-
My first year with Rust: The good, the bad, the ugly
In addition to thiserror and anyhow, our resident superhuman Rust-improving Robot, dtolnay, also developed an experiment in distributing precompiled proc macros as WebAssembly named Watt and, though I never bothered to create a Zulip account so I don't know what was said, I'm told there has been discussion around the idea of implementing something in that vein.
-
Rust is coming to the Linux kernel
I think when we have Cranelift, Mold, and maybe Watt all working together then compile times will basically be a non-issue. It'll be a few years though.
- watt: Runtime for executing (Rust) procedural macros as WebAssembly
-
Security advisory: malicious crate rustdecimal | Rust Blog
Check out https://github.com/dtolnay/watt - it's a really interesting solution to the problem!
-
Backdooring Rust crates for fun and profit
I really like the idea of Watt: https://github.com/dtolnay/watt Run macros in a wasm sandbox so they can't touch anything you don't explicitly allow.
-
NPM malware and what it could imply for Cargo
I really wish there was more interest in getting something like Watt upstreamed.
- Things I hate about Rust, redux
What are some alternatives?
hn-search - Hacker News Search
godot-wasm-engine
wasmer - 🚀 The leading Wasm Runtime supporting WASIX, WASI and Emscripten
cargo2nix - Granular builds of Rust projects for Nix
cap-std - Capability-oriented version of the Rust standard library
Graal - GraalVM compiles Java applications into native executables that start instantly, scale fast, and use fewer compute resources 🚀
kani - Kani Rust Verifier
awesome-wasm-runtimes - A list of webassemby runtimes
cargo-deny - ❌ Cargo plugin for linting your dependencies 🦀