Skip to main content

HttpServer

Struct HttpServer 

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

HTTP server plugin that handles incoming HTTP requests for WebAssembly components.

This plugin implements the wasi:http/incoming-handler interface and routes HTTP requests to appropriate WebAssembly components based on virtual hosting. It supports both HTTP and HTTPS connections with optional mutual TLS.

Implementations§

Source§

impl HttpServer

Source

pub fn new(addr: SocketAddr) -> Self

Creates a new HTTP server listening on the specified address.

§Arguments
  • addr - The socket address to bind to
§Returns

A new HttpServer instance configured for HTTP connections.

Source

pub async fn new_with_tls( addr: SocketAddr, cert_path: &Path, key_path: &Path, ca_path: Option<&Path>, ) -> Result<Self>

Creates a new HTTPS server with TLS support.

§Arguments
  • addr - The socket address to bind to
  • cert_path - Path to the TLS certificate file
  • key_path - Path to the private key file
  • ca_path - Optional path to CA certificate for mutual TLS
§Returns

A new HttpServer instance configured for HTTPS connections.

§Errors

Returns an error if the TLS configuration cannot be loaded.

Trait Implementations§

Source§

impl HostPlugin for HttpServer

Source§

fn id(&self) -> &'static str

Returns the unique identifier for this plugin. Read more
Source§

fn world(&self) -> WitWorld

Returns the WIT interfaces that this plugin provides. Read more
Source§

fn start<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Called when the plugin is started during host initialization. Read more
Source§

fn on_component_bind<'life0, 'life1, 'async_trait>( &'life0 self, component: &'life1 mut WorkloadComponent, interfaces: HashSet<WitInterface>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Called when a WorkloadComponent is being bound to this plugin. Read more
Source§

fn on_workload_resolved<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, resolved_handle: &'life1 ResolvedWorkload, component_id: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Called when a workload has been fully resolved and is ready for use. Read more
Source§

fn on_workload_unbind<'life0, 'life1, 'async_trait>( &'life0 self, workload: &'life1 ResolvedWorkload, _interfaces: HashSet<WitInterface>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Called when a workload is being stopped or unbound from this plugin. Read more
Source§

fn stop<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Called when the plugin is being stopped during host shutdown. Read more
Source§

fn on_workload_bind<'life0, 'life1, 'async_trait>( &'life0 self, _workload: &'life1 UnresolvedWorkload, _interfaces: HashSet<WitInterface>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Called when a workload is binding to this plugin. Read more

Auto Trait Implementations§

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