Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementation of WASIX and a fully networking for Web Assembly #2930

Closed
wants to merge 12 commits into from

Conversation

john-sharratt
Copy link
Contributor

@john-sharratt john-sharratt commented Jun 4, 2022

  • Introduced the virtual BUS interface used for RPC between web assembly apps
  • Introduced the virtual networking interface used to implement networking
    for web assembly apps
  • Implemented a local implementation of the virtual networking
    (available behind the feature toggle 'host-net' on the 'wasi' package)
  • Fixed up some of the examples from the wasmer3 branch
  • Refactored the WASI implementations so they support wasm64-wasi
  • WASIX is behind its own namespaces for both 32bit and 64bit implementations

Amanieu and others added 10 commits May 9, 2022 05:11
There was a typo in zero_padding_bytes which caused the type_ field to
be zeroed.

Fixes wasmerio#2865
…wser

- Split functionality out of WasiEnv so that it can support multi-threading
- Added methods to the VFS File Trait that supporting polling
- Implemented basic time functionality for WASI
- Incorported a yield callback for when WASI processes idle
- Improved the error handling on WASI IO calls
- Reduce the verbose logging on some critical WASI calls (write/read)
- Implemented the missing poll functionality for WASI processes
- Moved the syspoll functionality behind a feature flag to default to WASI method
- Refactored the thread sleeping functionality for WASI processes
- Fixed the files system benchmark which was not compiling
- Modified the file system trait so that it is SYNC and thus can handle multiple threads
- Removed the large mutex around filesystem state and implemented granular locks instead
  (this is needed to fix a deadlock scenario on the terminal)
- Split the inodes object apart from the state to fix the deadlock scenario.
- Few minor fixes to some warnings when not using certain features
- Sleeping will now call a callback that can be used by the runtime operator when
  a WASI thread goes to sleep (for instance to do other work)
- Fixed a bug where paths that exist on the real file system are leaking into VFS
- Timing functions now properly return a time precision on WASI
- Some improved macros for error handling within syscalls (wasi_try_ok!)
- Refactored the remove_directory WASI function which was not working properly
- Refactored the unlink WASI function which was not working properly
- Refactored the poll WASI function which was not working properly
- Updates some of the tests to make them compile again
- Rewrote the OutputCapturer so that it does leak into the internals
…Assembly

- Introduced the virtual BUS interface used for RPC between web assembly apps
- Introduced the virtual networking interface used to implement networking
  for web assembly apps
- Implemented a local implementation of the virtual networking
  (available behind the feature toggle 'host-net' on the 'wasi' package)
- Fixed up some of the examples from the wasmer3 branch
- Refactored the WASI implementations so they support wasm64-wasi
- WASIX is behind its own namespaces for both 32bit and 64bit implementations
…longer exposed - instead made the pipes clonable
@bors bors bot deleted the branch wasmerio:master June 8, 2022 11:27
@bors bors bot closed this Jun 8, 2022
@epilys epilys reopened this Jun 8, 2022
@epilys epilys changed the base branch from wasmer3 to master June 8, 2022 11:40
@epilys
Copy link
Contributor

epilys commented Jun 8, 2022

Closed in favor of #2941 (which targets master)

@epilys epilys closed this Jun 8, 2022
bors bot added a commit that referenced this pull request Jun 15, 2022
2941:  Implementation of WASIX and a fully networking for Web Assembly r=epilys a=epilys

- Introduced the virtual BUS interface used for RPC between web assembly apps
- Introduced the virtual networking interface used to implement networking
  for web assembly apps
- Implemented a local implementation of the virtual networking
  (available behind the feature toggle 'host-net' on the 'wasi' package)
- Fixed up some of the examples from the wasmer3 branch
- Refactored the WASI implementations so they support wasm64-wasi
- WASIX is behind its own namespaces for both 32bit and 64bit implementations

Original PR by `@john-sharratt` #2930

Co-authored-by: Johnathan Sharratt <[email protected]>
Co-authored-by: John Sharratt's Shared Account <[email protected]>
Co-authored-by: ptitSeb <[email protected]>
bors bot added a commit that referenced this pull request Jun 15, 2022
2941:  Implementation of WASIX and a fully networking for Web Assembly r=epilys a=epilys

- Introduced the virtual BUS interface used for RPC between web assembly apps
- Introduced the virtual networking interface used to implement networking
  for web assembly apps
- Implemented a local implementation of the virtual networking
  (available behind the feature toggle 'host-net' on the 'wasi' package)
- Fixed up some of the examples from the wasmer3 branch
- Refactored the WASI implementations so they support wasm64-wasi
- WASIX is behind its own namespaces for both 32bit and 64bit implementations

Original PR by `@john-sharratt` #2930

Co-authored-by: Johnathan Sharratt <[email protected]>
Co-authored-by: ptitSeb <[email protected]>
Co-authored-by: John Sharratt's Shared Account <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants