Back to Microsandbox

Events

docs/sdk/rust/events.mdx

0.4.41.6 KB
Original Source
<Note> Events are coming soon and not yet available in the current SDK. </Note>

See Events for usage examples and guest-side emitting.

Sandbox methods


emit()

rust
async fn emit(&self, event_name: &str, data: impl Serialize) -> MicrosandboxResult<()>

Send a named event with a JSON-serializable payload into the guest. Any process listening on the agent socket (/run/agent.sock) receives it.

Parameters

NameTypeDescription
event_name&strEvent name (e.g. "task.start")
dataimpl SerializeEvent payload - must be serializable to JSON

on_event()

rust
fn on_event(&self, event_name: &str, callback: impl FnMut(EventData) + Send + 'static) -> Subscription

Subscribe to named events emitted by guest processes. The callback fires each time the guest sends a matching event through /run/agent.sock. Multiple subscriptions to the same event name are supported.

Parameters

NameTypeDescription
event_name&strEvent name to subscribe to (e.g. "task.progress")
callbackimpl FnMut(EventData) + Send + 'staticCalled with the event data each time

Returns

TypeDescription
SubscriptionHandle that unsubscribes when dropped

Types

EventData

Data received from a guest event.

FieldTypeDescription
dataOption<serde_json::Value>Event payload as a JSON value. None if the event had no data.
eventStringEvent name