Struct wasmtime_wasi::preview2::WasiCtxBuilder
source · pub struct WasiCtxBuilder { /* private fields */ }
Implementations§
source§impl WasiCtxBuilder
impl WasiCtxBuilder
sourcepub fn new() -> Self
pub fn new() -> Self
Creates a builder for a new context with default parameters set.
The current defaults are:
- stdin is closed
- stdout and stderr eat all input but it doesn’t go anywhere
- no env vars
- no arguments
- no preopens
- clocks use the host implementation of wall/monotonic clocks
- RNGs are all initialized with random state and suitable generator quality to satisfy the requirements of WASI APIs.
These defaults can all be updated via the various builder configuration methods below.
Note that each builder can only be used once to produce a WasiCtx
.
Invoking the build
method will panic on the
second attempt.
pub fn stdin(&mut self, stdin: impl StdinStream + 'static) -> &mut Self
pub fn stdout(&mut self, stdout: impl StdoutStream + 'static) -> &mut Self
pub fn stderr(&mut self, stderr: impl StdoutStream + 'static) -> &mut Self
pub fn inherit_stdin(&mut self) -> &mut Self
pub fn inherit_stdout(&mut self) -> &mut Self
pub fn inherit_stderr(&mut self) -> &mut Self
pub fn inherit_stdio(&mut self) -> &mut Self
pub fn envs(&mut self, env: &[(impl AsRef<str>, impl AsRef<str>)]) -> &mut Self
pub fn env(&mut self, k: impl AsRef<str>, v: impl AsRef<str>) -> &mut Self
pub fn args(&mut self, args: &[impl AsRef<str>]) -> &mut Self
pub fn arg(&mut self, arg: impl AsRef<str>) -> &mut Self
pub fn preopened_dir( &mut self, dir: Dir, perms: DirPerms, file_perms: FilePerms, path: impl AsRef<str> ) -> &mut Self
sourcepub fn secure_random(
&mut self,
random: impl RngCore + Send + 'static
) -> &mut Self
pub fn secure_random( &mut self, random: impl RngCore + Send + 'static ) -> &mut Self
Set the generator for the secure random number generator to the custom generator specified.
Note that contexts have a default RNG configured which is a suitable generator for WASI and is configured with a random seed per-context.
Guest code may rely on this random number generator to produce fresh unpredictable random data in order to maintain its security invariants, and ideally should use the insecure random API otherwise, so using any prerecorded or otherwise predictable data may compromise security.
pub fn insecure_random( &mut self, insecure_random: impl RngCore + Send + 'static ) -> &mut Self
pub fn insecure_random_seed(&mut self, insecure_random_seed: u128) -> &mut Self
pub fn wall_clock(&mut self, clock: impl HostWallClock + 'static) -> &mut Self
pub fn monotonic_clock( &mut self, clock: impl HostMonotonicClock + 'static ) -> &mut Self
sourcepub fn inherit_network(&mut self) -> &mut Self
pub fn inherit_network(&mut self) -> &mut Self
Allow all network addresses accessible to the host
sourcepub fn socket_addr_check<F>(&mut self, check: F) -> &mut Self
pub fn socket_addr_check<F>(&mut self, check: F) -> &mut Self
A check that will be called for each socket address that is used.
Returning true
will permit socket connections to the SocketAddr
,
while returning false
will reject the connection.
sourcepub fn allow_ip_name_lookup(&mut self, enable: bool) -> &mut Self
pub fn allow_ip_name_lookup(&mut self, enable: bool) -> &mut Self
Allow usage of wasi:sockets/ip-name-lookup
Auto Trait Implementations§
impl Freeze for WasiCtxBuilder
impl !RefUnwindSafe for WasiCtxBuilder
impl Send for WasiCtxBuilder
impl !Sync for WasiCtxBuilder
impl Unpin for WasiCtxBuilder
impl !UnwindSafe for WasiCtxBuilder
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> GetSetFdFlags for T
impl<T> GetSetFdFlags for T
source§fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
self
file descriptor.source§fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
source§fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: AsFilelike,
fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: AsFilelike,
self
file descriptor. Read more