pub struct Host { /* private fields */ }Expand description
The wasmtime host: two engines (one per isolation mode) plus the shared state backend. One per process/worker.
Implementations§
Source§impl Host
impl Host
Sourcepub fn new(trust: TrustPolicy) -> Result<Self>
pub fn new(trust: TrustPolicy) -> Result<Self>
A host backed by an in-memory store (the default; process-lifetime state). trust is
the set of keys allowed to sign loadable filters (ADR 000006) — pass TrustPolicy::empty()
only if you intend that nothing can load.
Sourcepub fn pooling_allocator_metrics(&self) -> Option<PoolingAllocatorMetrics>
pub fn pooling_allocator_metrics(&self) -> Option<PoolingAllocatorMetrics>
Read-only residency metrics for the trusted (pooling) engine (wasmtime 46
PoolingAllocatorMetrics). A cheap, cloneable handle for perf probes / observability —
not the hot path. unused_memory_bytes_resident() reports bytes kept resident for
unused-but-warm pool slots (linear_memory_keep_resident, left at its default 0 here, so
this is expected to read ~0); memories() / component_instances() report the live count.
None if the trusted engine is not pooling (it always is here, so this returns Some).
Sourcepub fn with_backend(trust: TrustPolicy, kv: Arc<dyn KvBackend>) -> Result<Self>
pub fn with_backend(trust: TrustPolicy, kv: Arc<dyn KvBackend>) -> Result<Self>
A host backed by a caller-supplied store (e.g. RedbBackend for durability).
Sourcepub fn with_telemetry_sink(self, sink: Arc<dyn TelemetrySink>) -> Self
pub fn with_telemetry_sink(self, sink: Arc<dyn TelemetrySink>) -> Self
Set the telemetry sink (ADR 000009 observability stage). Filters loaded after this
emit one span per on_request / on_response to sink; the default is NoopSink
(observability off, zero cost). Builder style: Host::new(trust)?.with_telemetry_sink(sink).
The sink is cloned into each filter at load, so set it before loading.
Sourcepub fn with_added_telemetry_sink(self, sink: Arc<dyn TelemetrySink>) -> Self
pub fn with_added_telemetry_sink(self, sink: Arc<dyn TelemetrySink>) -> Self
Add sink ALONGSIDE the current one (fan-out) instead of replacing it — the composition
hook for wiring the OTLP export buffer (ADR 000040) next to whatever sink the caller
already set. Same load-time rule as with_telemetry_sink:
compose before loading filters.
Sourcepub fn load(
&self,
filter_id: &str,
artifact: &SignedArtifact<'_>,
opts: LoadOptions,
) -> Result<LoadedFilter>
pub fn load( &self, filter_id: &str, artifact: &SignedArtifact<'_>, opts: LoadOptions, ) -> Result<LoadedFilter>
Load a filter component under the given isolation mode. Type-checks and resolves
imports up front (InstancePre). For Trusted, the single persistent instance is
created now and init runs once; for Untrusted, instantiation is deferred to
each request.
filter_id is the host-assigned identity used to namespace this filter’s keyspace
(ADR 000011). It must be non-empty and free of the namespace delimiter; the filter
never sees or controls it. Uniqueness is the caller’s responsibility: load
rejects an empty or delimiter-bearing id but not a duplicate, so loading the same id
twice shares one keyspace. A manifest-driven registry will assign and dedup ids
(ADR 000007).
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> 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> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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