glats

Types

pub type Connection =
  Subject(ConnectionMessage)

Errors that can be returned by the server.

pub type ConnectionError {
  Timeout
  NoResponders
  Unexpected
}

Constructors

  • Timeout
  • NoResponders
  • Unexpected

Message sent to a NATS connection process.

pub opaque type ConnectionMessage

Functions

pub fn active_subscriptions(conn: Subject(ConnectionMessage)) -> Result(
  Int,
  ConnectionError,
)

Returns the number of active subscriptions for the connection.

pub fn connect(settings: Settings) -> Result(
  Subject(ConnectionMessage),
  StartError,
)

Starts an actor that handles a connection to NATS using the provided settings.

pub fn publish(conn: Subject(ConnectionMessage), subject: String, message: String) -> Result(
  Nil,
  String,
)

Publishes a single message to NATS on a provided subject.

pub fn publish_message(conn: Subject(ConnectionMessage), message: Message) -> Result(
  Nil,
  String,
)

Publishes a single message to NATS using the data from a provided Message record.

pub fn queue_subscribe(conn: Subject(ConnectionMessage), subscriber: Subject(
    Message,
  ), subject: String, group: String) -> Result(Int, String)

Subscribes to a NATS subject as part of a queue group. Messages can be received on the provided OTP subject.

See Queue Groups docs.

pub fn request(conn: Subject(ConnectionMessage), subject: String, message: String) -> Result(
  Message,
  ConnectionError,
)

Sends a request and listens for a response synchronously.

See request-reply pattern docs.

pub fn server_info(conn: Subject(ConnectionMessage)) -> Result(
  ServerInfo,
  ConnectionError,
)

Returns server info provided by the connected NATS server.

pub fn subscribe(conn: Subject(ConnectionMessage), subscriber: Subject(
    Message,
  ), subject: String) -> Result(Int, String)

Subscribes to a NATS subject that can be received on the provided OTP subject.

pub fn unsubscribe(conn: Subject(ConnectionMessage), sid: Int) -> Result(
  Nil,
  String,
)

Unsubscribe from a subscription by providing the subscription ID.

Search Document