Skip to content

Latest commit

 

History

History
183 lines (183 loc) · 8.74 KB

imports.md

File metadata and controls

183 lines (183 loc) · 8.74 KB

World imports

The imports world defines the interfaces that the component will import from the host. It includes the producer interface for sending messages.

Import interface wasi:messaging/[email protected]


Types

type metadata

metadata

A type alias for list> to represent metadata attached to a message

type topic

string

A type alias for string to represent a message topic

resource client

A connection to a message-exchange service (e.g., buffer, broker, etc.).

variant error

Errors that can occur when using the messaging interface.

Variant Cases
  • timeout

    The request or operation timed out.

  • connection: string

    An error occurred with the connection. Includes a message for additional context

  • permission-denied: string

    A permission error occurred. Includes a message for additional context

  • other: string

    A catch all for other types of errors

resource message

A message with a binary payload and additional information

Functions

[static]client.connect: func

Params
  • name: string
Return values

[method]client.disconnect: func

Params
Return values

[constructor]message: func

Params
  • data: list<u8>
Return values

[method]message.topic: func

The topic/subject/channel this message was received on

Params
Return values

[method]message.content-type: func

An optional content-type describing the format of the data in the message. This is sometimes described as the "format" type

Params
Return values
  • option<string>

[method]message.set-content-type: func

Set the content-type describing the format of the data in the message. This is sometimes described as the "format" type

Params
  • self: borrow<message>
  • content-type: string

[method]message.data: func

An opaque blob of data

Params
Return values
  • list<u8>

[method]message.set-data: func

Set the opaque blob of data for this message, discarding the old value

Params
  • self: borrow<message>
  • data: list<u8>

[method]message.metadata: func

Optional metadata (also called headers or attributes in some systems) attached to the message. This metadata is simply decoration and should not be interpreted by a host to ensure portability across different implementors (e.g., Kafka -> NATS, etc.).

Params
Return values

[method]message.add-metadata: func

Add a new key-value pair to the metadata, overwriting any existing value for the same key

Params
  • self: borrow<message>
  • key: string
  • value: string

[method]message.set-metadata: func

Set the metadata

Params

[method]message.remove-metadata: func

Remove a key-value pair from the metadata

Params
  • self: borrow<message>
  • key: string

Import interface wasi:messaging/[email protected]

The producer interface is used to send messages to a channel/topic.


Types

type client

client

#### `type message` [`message`](#message)

#### `type error` [`error`](#error)

#### `type topic` [`topic`](#topic)

----

Functions

send: func

Sends the message using the given client.

Params
Return values