glats
A NATS client for Gleam. This wraps Elixir’s client, Gnat.
Publish
import gleam/result
import glats
import glats/settings
pub fn main() {
use conn <- result.then(
settings.new("localhost", 4222)
|> glats.connect,
)
// Publish a single message to "some.subject".
assert Ok(Nil) = glats.publish(conn, "some.subject", "hello world!")
Ok(Nil)
}
Subscribe
import gleam/io
import gleam/result
import gleam/erlang/process
import glats
import glats/settings
pub fn main() {
use conn <- result.then(
settings.new("localhost", 4222)
|> glats.connect,
)
let subject = process.new_subject()
// Subscribe to "some.subject".
// Messages will be delivered to the erlang subject passed in.
assert Ok(sid) = glats.subscribe(conn, subject, "some.subject")
// Publish a single message to "some.subject".
assert Ok(Nil) = glats.publish(conn, "some.subject", "hello world!")
// Receive from erlang subject.
assert Ok(msg) = process.receive(subject, 1000)
// Prints: `Message("some.subject", //erl(#{}), None, "hello world!")`.
io.debug(msg)
// Unsubscribe from the subscription.
assert Ok(Nil) = glats.unsubscribe(conn, sid)
Ok(Nil)
}
Installation
gleam add glats
and its documentation can be found at https://hexdocs.pm/glats.