While WebAssembly is designed to run on the Web, it is also desirable for it to be able to execute well in other environments, including everything from minimal shells for testing to full-blown application environments e.g. on servers in datacenters, on IoT devices, or mobile/desktop apps. It may even be desirable to execute WebAssembly embedded within larger programs.
Non-Web environments may provide different APIs than Web environments.
Non-Web environments include JavaScript VMs (e.g. node.js), however WebAssembly is also capable of being executed without a JavaScript VM present. The table in the features page of the website lists several such implementations.
WASI is a set of standards-track APIs being developed by the WASI Subgroup intended for use in many environments, including in non-browser and non-JS engines.
The WebAssembly spec itself will not try to define any large portable libc-like
library. However, certain features that are core to WebAssembly semantics that
are similar to functions found in native libc would be part of the core
WebAssembly spec as primitive operators (e.g., the memory.grow
operator, which
is similar to the sbrk
function on many systems, and in the future, perhaps
operators supporting dlopen
functionality).
Where there is overlap between the Web and popular non-Web environments, shared specs could be proposed, but these would be separate from the WebAssembly spec. A symmetric example in JavaScript would be the in-progress Loader spec, which is proposed for both Web and node.js environments and is distinct from the JavaScript spec.
However, for most cases it is expected that, to achieve portability at the source code level, communities would build libraries that mapped from a source-level interface such as POSIX or SDL to the host environment’s builtin capabilities, either at build time or runtime, possibly making use of feature testing, dynamic linking, static linking, or polyfilling.
In general, by preserving spec layering, and the core WebAssembly spec independent of the host environment and linking specs, WebAssembly can be used as a portable binary format on many platforms, in many environments, for many use cases, bringing great benefits in portability, tooling and language-agnosticity.
什么的怀抱 | 射手座是什么星座 | 五四运动是什么 | 壬水代表什么 | 秦始皇的原名叫什么 |
碳酸钠是什么东西 | 什么食物蛋白质含量最高 | 口周皮炎用什么药膏 | 激素是什么 | 6.21什么星座 |
梦见狗吃屎是什么意思 | 房颤吃什么药 | 菊花的功效是什么 | 辣椒炒肉用什么肉 | 假释是什么意思 |
眼球出血是什么原因引起的 | rh是什么血型 | 女人银屑病一般都长什么地方 | 奶油是什么做的 | 阴火是什么意思 |
半夜12点是什么时辰hcv8jop8ns1r.cn | 什么是黑色素瘤hcv8jop7ns7r.cn | 抽烟手抖是什么原因hcv9jop2ns2r.cn | 魂牵梦绕的意思是什么hcv9jop4ns8r.cn | 长期口臭吃什么药hcv8jop8ns1r.cn |
三点水加个真念什么huizhijixie.com | 12.28是什么星座hcv8jop2ns1r.cn | 肺结核早期有什么症状dayuxmw.com | 右耳朵发热代表什么预兆hcv9jop6ns7r.cn | 滴蜡是什么意思hcv8jop9ns9r.cn |
hpv弱阳性是什么意思hcv8jop6ns0r.cn | 218是什么星座creativexi.com | 砂锅是什么材料做的hcv9jop7ns5r.cn | 肝不好吃什么药效果好hcv9jop5ns3r.cn | 耕的左边读什么hcv8jop7ns8r.cn |
咯血是什么意思hcv8jop4ns9r.cn | 长期胃胀是什么原因hcv9jop0ns5r.cn | 舍什么救什么jingluanji.com | 地板油是什么意思hcv8jop7ns3r.cn | 尿起泡沫是什么原因wzqsfys.com |