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
impl HttpServer
Sourcepub fn new(addr: SocketAddr) -> Self
pub fn new(addr: SocketAddr) -> Self
Sourcepub async fn new_with_tls(
addr: SocketAddr,
cert_path: &Path,
key_path: &Path,
ca_path: Option<&Path>,
) -> Result<Self>
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 tocert_path- Path to the TLS certificate filekey_path- Path to the private key fileca_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
impl HostPlugin for HttpServer
Source§fn start<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
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,
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 moreSource§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,
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,
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,
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,
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§
impl !RefUnwindSafe for HttpServer
impl !UnwindSafe for HttpServer
impl Freeze for HttpServer
impl Send for HttpServer
impl Sync for HttpServer
impl Unpin for HttpServer
impl UnsafeUnpin for HttpServer
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
Mutably borrows from an owned value. Read more
impl<T> ErasedDestructor for Twhere
T: 'static,
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,
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,
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: Sized + AsFilelike,
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 moreSource§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> ⓘ
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 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> ⓘ
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