glats
Types
pub type Connection =
Subject(ConnectionMessage)
Message sent to a NATS connection process.
pub opaque type ConnectionMessage
Options that can be passed to connect
.
pub type ConnectionOption {
UserPass(String, String)
Token(String)
NKeySeed(String)
JWT(String)
CACert(String)
ClientCert(String, String)
InboxPrefix(String)
ConnectionTimeout(Int)
EnableNoResponders
}
Constructors
-
UserPass(String, String)
Set a username and password for authentication.
-
Token(String)
Set a token for authentication.
-
NKeySeed(String)
Set an NKey seed for authentication.
-
JWT(String)
Set a JWT for authentication.
-
CACert(String)
Set a CA cert for the server connection.
-
ClientCert(String, String)
Set client certificate key pair for authentication.
-
InboxPrefix(String)
Set a custom inbox prefix used by the connection.
-
ConnectionTimeout(Int)
Set a connection timeout in milliseconds.
-
EnableNoResponders
Enable the no responders behavior.
Errors that can be returned by the server.
pub type Error {
NoReplyTopic
Timeout
NoResponders
Unexpected
}
Constructors
-
NoReplyTopic
-
Timeout
-
NoResponders
-
Unexpected
A single message that can be received from or sent to NATS.
pub type Message {
Message(
topic: String,
headers: Map(String, String),
reply_to: Option(String),
body: String,
)
}
Constructors
-
Message( topic: String, headers: Map(String, String), reply_to: Option(String), body: String, )
Option that can be specified when publishing a message.
pub type PublishOption {
ReplyTo(String)
Headers(List(#(String, String)))
}
Constructors
-
ReplyTo(String)
Provide a reply topic with the message that the receiver can send data back to.
-
Headers(List(#(String, String)))
Headers to add to the message.
Server info returned by the NATS server.
pub type ServerInfo {
ServerInfo(
server_id: String,
server_name: String,
version: String,
go: String,
host: String,
port: Int,
headers: Bool,
max_payload: Int,
proto: Int,
jetstream: Bool,
auth_required: Option(Bool),
)
}
Constructors
-
ServerInfo( server_id: String, server_name: String, version: String, go: String, host: String, port: Int, headers: Bool, max_payload: Int, proto: Int, jetstream: Bool, auth_required: Option(Bool), )
Option that can be specified when subscribing to a topic.
pub type SubscribeOption {
QueueGroup(String)
}
Constructors
-
QueueGroup(String)
Subscribe to a topic as part of a queue group.
Message received by a subscribing subject.
pub type SubscriptionMessage {
ReceivedMessage(
conn: Connection,
sid: Int,
status: Option(Int),
message: Message,
)
}
Constructors
-
ReceivedMessage( conn: Connection, sid: Int, status: Option(Int), message: Message, )
Functions
pub fn active_subscriptions(conn: Subject(ConnectionMessage)) -> Result(
Int,
Error,
)
Returns the number of active subscriptions for the connection.
pub fn connect(host: String, port: Int, opts: List(
ConnectionOption,
)) -> Result(Subject(ConnectionMessage), StartError)
Starts an actor that handles a connection to NATS using the provided settings.
Example
connect(
"localhost",
4222,
[
CACert("/tmp/nats/ca.crt"),
InboxPrefix("_INBOX.custom.prefix."),
],
)
pub fn publish(conn: Subject(ConnectionMessage), topic: String, body: String, opts: List(
PublishOption,
)) -> Result(Nil, Error)
Publishes a single message to NATS on a provided topic.
pub fn publish_message(conn: Subject(ConnectionMessage), message: Message) -> Result(
Nil,
Error,
)
Publishes a single message to NATS using the data from a provided Message
record.
pub fn request(conn: Subject(ConnectionMessage), topic: String, body: String, opts: List(
PublishOption,
), timeout: Int) -> Result(Message, Error)
Sends a request and listens for a response synchronously.
When connection is established with option EnableNoResponders
,
Error(NoResponders)
will be returned immediately if no subscriber
exists for the topic.
See request-reply pattern docs.
To handle a request from NATS see handler.handle_request
.
pub fn respond(conn: Subject(ConnectionMessage), message: Message, body: String, opts: List(
PublishOption,
)) -> Result(Nil, Error)
Sends a respond to a Message’s reply_to topic.
pub fn server_info(conn: Subject(ConnectionMessage)) -> Result(
ServerInfo,
Error,
)
Returns server info provided by the connected NATS server.
pub fn subscribe(conn: Subject(ConnectionMessage), subscriber: Subject(
SubscriptionMessage,
), topic: String, opts: List(SubscribeOption)) -> Result(
Int,
Error,
)
Subscribes to a NATS topic that can be received on the provided OTP subject.
To subscribe as a member of a queue group, add option
QueueGroup(String)
to list of options as the last
parameter.
subscribe(conn, subject, "my.topic", [QueueGroup("my-group")])
pub fn unsubscribe(conn: Subject(ConnectionMessage), sid: Int) -> Result(
Nil,
Error,
)
Unsubscribe from a subscription by providing the subscription ID.