make wasi-cap-std-async work with wasmtime-wasi

This commit is contained in:
Pat Hickey
2021-04-12 19:03:03 -07:00
parent ac3b456523
commit 8f9fb1f4e2
3 changed files with 12 additions and 0 deletions

1
Cargo.lock generated
View File

@@ -3533,6 +3533,7 @@ name = "wasmtime-wasi"
version = "0.26.0"
dependencies = [
"anyhow",
"wasi-cap-std-async",
"wasi-cap-std-sync",
"wasi-common",
"wasmtime",

View File

@@ -15,6 +15,7 @@ build = "build.rs"
[dependencies]
wasi-common = { path = "../wasi-common", version = "0.26.0" }
wasi-cap-std-sync = { path = "../wasi-common/cap-std-sync", version = "0.26.0", optional = true }
wasi-cap-std-async = { path = "../wasi-common/cap-std-async", version = "0.26.0", optional = true }
wiggle = { path = "../wiggle", default-features = false, version = "0.26.0" }
wasmtime-wiggle = { path = "../wiggle/wasmtime", default-features = false, version = "0.26.0" }
wasmtime = { path = "../wasmtime", default-features = false, version = "0.26.0" }
@@ -23,3 +24,4 @@ anyhow = "1.0"
[features]
default = ["sync"]
sync = ["wasi-cap-std-sync"]
async = ["wasi-cap-std-async", "wasmtime/async", "wasmtime-wiggle/async"]

View File

@@ -20,6 +20,13 @@ pub mod sync {
pub use wasi_cap_std_sync::*;
}
/// Re-export the wasi-cap-std-async crate here. This saves consumers of this library from having
/// to keep additional dependencies in sync.
#[cfg(feature = "async")]
pub mod async_ {
pub use wasi_cap_std_async::*;
}
/// An instantiated instance of all available wasi exports. Presently includes
/// both the "preview1" snapshot and the "unstable" (preview0) snapshot.
pub struct Wasi {
@@ -79,6 +86,7 @@ necessary. Additionally [`Wasi::get_export`] can be used to do name-based
resolution.",
},
},
async: { wasi_snapshot_preview1::{ poll_oneoff, sched_yield } }
});
}
pub mod preview_0 {
@@ -106,6 +114,7 @@ necessary. Additionally [`Wasi::get_export`] can be used to do name-based
resolution.",
},
},
async: { wasi_unstable::{ poll_oneoff, sched_yield } }
});
}
}