Implemented functionality needed for WASIX and Networking within Web 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
- Fixed the wasi_pipes unit test which was using internals that are no longer exposed - instead made the pipes clonable
This commit is contained in:
Johnathan Sharratt
2022-05-14 23:58:04 +02:00
committed by Manos Pitsidianakis
parent 7c532813e7
commit 62de9c5aad
40 changed files with 10273 additions and 489 deletions

View File

@@ -287,6 +287,12 @@ pub enum wasi_version_t {
/// `wasi_snapshot_preview1`.
SNAPSHOT1 = 2,
/// `wasix_32v1`.
WASIX32V1 = 3,
/// `wasix_64v1`.
WASIX64V1 = 4,
}
impl From<WasiVersion> for wasi_version_t {
@@ -294,6 +300,8 @@ impl From<WasiVersion> for wasi_version_t {
match other {
WasiVersion::Snapshot0 => wasi_version_t::SNAPSHOT0,
WasiVersion::Snapshot1 => wasi_version_t::SNAPSHOT1,
WasiVersion::Wasix32v1 => wasi_version_t::WASIX32V1,
WasiVersion::Wasix64v1 => wasi_version_t::WASIX64V1,
WasiVersion::Latest => wasi_version_t::LATEST,
}
}
@@ -307,6 +315,8 @@ impl TryFrom<wasi_version_t> for WasiVersion {
wasi_version_t::INVALID_VERSION => return Err("Invalid WASI version cannot be used"),
wasi_version_t::SNAPSHOT0 => WasiVersion::Snapshot0,
wasi_version_t::SNAPSHOT1 => WasiVersion::Snapshot1,
wasi_version_t::WASIX32V1 => WasiVersion::Wasix32v1,
wasi_version_t::WASIX64V1 => WasiVersion::Wasix64v1,
wasi_version_t::LATEST => WasiVersion::Latest,
})
}