GithubHelp home page GithubHelp logo

Comments (13)

lukewagner avatar lukewagner commented on May 13, 2024 3

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.

Kevin0626 avatar Kevin0626 commented on May 13, 2024 2

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.

sunfishcode avatar sunfishcode commented on May 13, 2024 1

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.

xwang98 avatar xwang98 commented on May 13, 2024 1

@beriberikix thanks for sending this reference! we didn't notice that! we will keep watching it.

from wasm-micro-runtime.

PerArneng avatar PerArneng commented on May 13, 2024

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.

xwang98 avatar xwang98 commented on May 13, 2024

@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.

beriberikix avatar beriberikix commented on May 13, 2024

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.

xwang98 avatar xwang98 commented on May 13, 2024

supported on Linux now.

from wasm-micro-runtime.

beriberikix avatar beriberikix commented on May 13, 2024

While the issue was more general about WASI, is there plans for support to other hosts like Zephyr?

from wasm-micro-runtime.

xwang98 avatar xwang98 commented on May 13, 2024

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.

xwang98 avatar xwang98 commented on May 13, 2024

@yiting16, do you have any plan to implement the WASI for Vxworks?

from wasm-micro-runtime.

beriberikix avatar beriberikix commented on May 13, 2024

Agreed, but as I understand it Zephyr includes a filesystem abstraction which could be leveraged!

from wasm-micro-runtime.

yiting16 avatar yiting16 commented on May 13, 2024

from wasm-micro-runtime.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.