-
Notifications
You must be signed in to change notification settings - Fork 1
Wasi
- WASI will not be used in this project. WASI is and probably will be slow on browsers.
- This page may be deleted in future.
WASI ist eine verallgemeinerte Schnittstelle zu einem virtuellen Betriebssystem. Das heißt, man kann durch diese Schnittstelle in WebAssembly unixoide Funktionen nutzten, wie z.B. fd_read()
oder clock_time_get()
. Leider sind Informationen zu dem Thema noch Mangelware und es scheint nicht garantiert zu sein, dass es sich durchsetzt. Informative Weblinks unten.
Dazu liefert uns die Wasmtime overview-page Infos:
Can WASI apps run on the Web? Yes! We have a polyfill which implements WASI and runs in browsers. At the WebAssembly level, WASI is just a set of callable functions that can be imported by a
.wasm
module, and these imports can be implemented in a variety of ways, including by a JavaScript polyfill library running within browsers. And in the future, it's possible that builtin modules could take these ideas even further allowing easier and tighter integration between .wasm modules importing WASI and the Web.
TL;DR es ist noch nicht in Browsern implementiert, was aber noch in Aussicht steht. Stattdessen gibt es eine js-Implementation namens polyfill
Was sich nach einem schlechten Programm anhört, das Polygone ausfüllen soll, entpuppt sich als eine inperformante Softwareimplementation von WASI auf js-Ebene. s. source code
Problem: Wenn wir WASI nutzen wollen, dann nur aus Performance-Gründen, um zum Beispiel einen effizienten Timer für die Game Loop zu bekommen. Allerdings würde das js-polyfill unsere Anwendung langsamer machen, als eine alternative Implementation über setInterval
, daher steht jetzt die Frage offen, ob man WASI nutzen soll und das Risiko eingeht, dass es möglicherweise nie eine effiziente Anbindung zum Web-Browser gibt, oder weiterhin die hässliche Lösung mit setInterval
nutzt.
Das ist eine WebAssembly runtime hauptsächlich von Mozilla-Menschen. WASI war wohl eines von deren kranken Methoden, Menschen zu mobben.
Nö. Wäre ja auch zu schön gewesen.
Scheint recht reibungslos zu laufen. Es gibt sogar ein eigenes target wasm32-wasi
für WASI. Sogar rust-std nutzt mittlerweile WASI-syscalls (https://doc.rust-lang.org/std/time/struct.Instant.html#underlying-system-calls).
Brainstorming:
Sessions Liste 📃
Letzte Session◀️
Nächste Session▶️
Last Design-Session 👈
Next Design-Session 👉
Dunkle Seite 🌈
Design:
Sound 🎧
Grafikdesign 🤺
Animationen 🎞️
Gamedesign 📝
Programmierung:
Gamelogik ⚙️
Frontend 👾
Backend 🗄️
Spielprotokoll 🧻