Skip to main content

Host

Struct Host 

Source
pub struct Host { /* private fields */ }
Expand description

A wasmcloud host that manages WebAssembly workloads and plugins.

The Host is the primary runtime for executing workloads. It manages:

  • An engine for compiling and running WebAssembly components
  • A collection of workloads and their states
  • Plugins that extend host functionality
  • System monitoring and resource tracking

Implementations§

Source§

impl Host

Source

pub fn builder() -> HostBuilder

Create a new builder for the host.

Source

pub async fn start(self) -> Result<Arc<Self>>

Start the host and initialize all plugins.

This method must be called before the host can accept workloads. It starts all registered plugins and prepares the host for operation.

§Returns

An Arc wrapped host ready to accept workloads.

§Errors

Returns an error if any plugin fails to start.

Source

pub async fn stop(self: Arc<Self>) -> Result<()>

Stop the host and shut down all plugins.

Attempts to gracefully stop all plugins with a 3-second timeout for each. Errors are logged but don’t prevent other plugins from being stopped.

§Returns

Ok if the shutdown process completes (even with plugin errors).

Source

pub fn label(&self, label: impl AsRef<str>) -> Option<&String>

Get a label value by key.

§Arguments
  • label - The label key to look up
§Returns

The label value if it exists, None otherwise.

Source

pub fn id(&self) -> &str

Get the unique identifier for this host.

§Returns

The host’s unique ID string.

Source

pub fn friendly_name(&self) -> &str

Get the human-readable name for this host.

§Returns

The host’s friendly name string.

Source

pub fn wit_world(&self) -> WitWorld

Returns the WIT (imports, exports) that this host can provide to any component.

Put another way, this represents a simplified version of the host world. For example, this WIT world:

package wasmcloud:host@0.1.0;

interface foo {
...
}
interface bar {
...
}

world host {
  import foo;
  export bar;
}

Would be returned as: ( vec![WitInterface { namespace: “wasmcloud”, package: “host”, interfaces: [“foo”], version: Some(“0.1.0”) }], vec![WitInterface { namespace: “wasmcloud”, package: “host”, interfaces: [“bar”], version: Some(“0.1.0”) }], )

This can be viewed as an inversion of the worlds that this host can support. In the above example, this host can support any component that imports bar and exports foo. Other exports will be ignored, and other imports that are unsatisfied will be rejected.

Trait Implementations§

Source§

impl Debug for Host

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl HostApi for Host

Source§

async fn workload_start( &self, request: WorkloadStartRequest, ) -> Result<WorkloadStartResponse>

Start a workload

Source§

async fn heartbeat(&self) -> Result<HostHeartbeat>

Request a heartbeat containing the host’s current state and system information. Read more
Source§

async fn workload_status( &self, request: WorkloadStatusRequest, ) -> Result<WorkloadStatusResponse>

Query the status of a running workload. Read more
Source§

async fn workload_stop( &self, request: WorkloadStopRequest, ) -> Result<WorkloadStopResponse>

Stop a running workload on this host. Read more

Auto Trait Implementations§

§

impl !RefUnwindSafe for Host

§

impl !UnwindSafe for Host

§

impl Freeze for Host

§

impl Send for Host

§

impl Sync for Host

§

impl Unpin for Host

§

impl UnsafeUnpin for Host

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> GetSetFdFlags for T

Source§

fn get_fd_flags(&self) -> Result<FdFlags, Error>
where T: AsFilelike,

Query the “status” flags for the self file descriptor.
Source§

fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>
where T: AsFilelike,

Create a new SetFdFlags value for use with set_fd_flags. Read more
Source§

fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>
where T: Sized + AsFilelike,

Set the “status” flags for the self file descriptor. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more