Comments (13)
One of the goals of WASi (described here) is to be modular, with APIs grouped into discrete modules so that a host environment can implement only the modules that make sense on that host. It's still very early in WASI's development, but I think it's likely that the WASI core will be partitioned so that file IO would be in a separate module that embedded environments could choose not to implement.
from wasm-micro-runtime.
This project is required to work within 300K memory budget, including the memory used for holding runtime binary. So the footprint and memory usage is a high priority design goal. To save the memory for holding those libc functions, we just selected to export the native string functions to WASM application rather than compiling them into the WASM bytecode.
@sunfishcode Hi Dan, we are working together with Josh. Maybe we can schedule a meeting for sharing the projects and discussing how to collaborate on WASI standard.
from wasm-micro-runtime.
Are you referring to the libc APIs descriped here? If so, then yes, WASI libc does contain implementations of all of those functions.
from wasm-micro-runtime.
@beriberikix thanks for sending this reference! we didn't notice that! we will keep watching it.
from wasm-micro-runtime.
Agree. Its very important that standards are created at this time. If you build standards great things happen. Wasm itself is proof of that. Wasi is a good idea and its important that more organisations get behind it.
from wasm-micro-runtime.
@Widdershin @PerArneng ,
Thanks for bringing the WASI to us. We are interested in WASI and agree that it is important for enabling cross platforms support for wasm applications.
There are some technical questions though when we look at the current WASI api definition below:
https://github.com/CraneStation/wasmtime/blob/master/docs/WASI-api.md
It looks the definitions are more targeting file IO for the desktop and server platforms, not for embedded systems. For example, in an embedded controller usually there is no file system.
Maybe we can defined a profile of WASI for embedded environment?
from wasm-micro-runtime.
There is a reference implementation of wasi-libc
. I believe it could replace the current subset implementation, based on the methods in common. That might be all that's needed to support WASI. @sunfishcode?
from wasm-micro-runtime.
supported on Linux now.
from wasm-micro-runtime.
While the issue was more general about WASI, is there plans for support to other hosts like Zephyr?
from wasm-micro-runtime.
The problem for WASI support on Zephyr is that embedded OS like Zephyr doesn't have standard file IO implementation. It is usually project based decision on what fs middleware to be used.
from wasm-micro-runtime.
@yiting16, do you have any plan to implement the WASI for Vxworks?
from wasm-micro-runtime.
Agreed, but as I understand it Zephyr includes a filesystem abstraction which could be leveraged!
from wasm-micro-runtime.
from wasm-micro-runtime.
Related Issues (20)
- How to use coroutines in wasm? HOT 2
- Add ability to get import and export information from wasm_export interface HOT 2
- An unexpected behavior in multiple modes HOT 2
- Unexpected Execution HOT 2
- WAMR throw OOB exception in LLVM-JIT mode while not in Fast-JIT mode HOT 2
- Error occurs when calling native function with local variable in AOT modeοΌ HOT 8
- Heap Buffer Overflow Inside "wasm_loader_check_br" Function HOT 3
- Out-of-Bound Memory Read inside "block_type_get_arity" Function HOT 3
- Error compiling wamr 2.0.0 for Windows. Error: invalid numeric argument '/Wextra' HOT 3
- On memory usage when loading a Wasm file with fast interpreter HOT 5
- wamrc size_level heuristic
- Exception: uninitialized element HOT 4
- Unexpected "type mismatch" Exception on JIT mode HOT 2
- macos CI runs failed HOT 2
- [RFC] Basic support for Multi-Memory proposal HOT 4
- Unexpected execution result on fast interpreter mode HOT 1
- Unexpected execution in fast interpreter mode HOT 1
- Unexpected execution result on fast interpreter mode HOT 1
- Unexpected behavior in fast-JIT mode and interpreter mode
- Unexpected behavior in fast-JIT mode and interpreter mode
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wasm-micro-runtime.