Skip to main content

EmbeddedLiminal

Struct EmbeddedLiminal 

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

A booted, live embedded liminal component: the TCP listener, the browser WebSocket listener, and the health endpoint, all bound and serving on liminal’s own threads inside the frame-host process.

Holding this value keeps the component alive. Self::shutdown drives liminal’s own graceful teardown; dropping it without calling shutdown still stops every listener thread via each handle’s Drop (no leaked threads).

Implementations§

Source§

impl EmbeddedLiminal

Source

pub fn boot(config: &ServerConfig) -> Result<Self, HostError>

Boots the embedded liminal component from the validated [bus] config: health endpoint, full-profile services, TCP listener, and the browser WebSocket listener — each bound before the next.

The caller (crate::config::FrameConfig::load) has already validated the config and refused any embedded-unsupported shape, so [websocket] is guaranteed present here.

§Errors

Returns HostError::LiminalComponent naming the exact component that failed to bind or boot. Every already-bound component is torn down by its own Drop as the error unwinds, so a failed boot never leaves a listener behind — there is no half-up state.

Source

pub fn websocket_endpoint(&self) -> String

The browser-facing WebSocket endpoint, derived from the ACTUAL bound listener address plus the configured upgrade path.

This is the single source of truth surfaced to the page as busEndpoint (and, during the compatibility window, as the deprecated duplicate liminalEndpoint): because it comes from the live listener’s own local_addr, the page’s endpoint and the server’s real bound address are one value and can never drift.

Source

pub const fn tcp_addr(&self) -> SocketAddr

The bound TCP wire listener address (native clients, e.g. the demo publisher, connect here).

Source

pub const fn websocket_addr(&self) -> SocketAddr

The bound browser WebSocket listener address.

Source

pub const fn health_addr(&self) -> SocketAddr

The bound health endpoint address.

Source

pub fn shutdown(self) -> Result<(), HostError>

Drives liminal’s own graceful shutdown: stop accepting on both transports, drain/force-close active connections, flush durable state, then stop the health endpoint.

§Errors

Returns HostError::LiminalShutdown if liminal’s drain/flush fails, or HostError::LiminalComponent if the health endpoint fails to stop.

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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