Skip to content
/ nerf Public

Gleam bindings to gun, the Erlang HTTP/1.1, HTTP/2 and Websocket client

Notifications You must be signed in to change notification settings

lpil/nerf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nerf

Gleam bindings to gun, the Erlang HTTP/1.1, HTTP/2 and Websocket client.

Currently this library is very basic and only supports a portion of the websocket API, and TLS is not verified! Hopefully in future a better websocket client written in Gleam can replace this one.

Usage

This package can be added to your Gleam project like so.

gleam add nerf

Then use it in your Gleam application.

import nerf/websocket
import gleam/erlang
import gleam/erlang/atom

pub fn main() {
  // Connect
  let assert Ok(conn) = websocket.connect("example.com", "/ws", 8080, [])

  // Send some messages
  websocket.send(conn, "Hello")
  websocket.send(conn, "World")

  // Receive some messages
  let assert Ok(Text("Hello")) = websocket.receive(conn, 500)
  let assert Ok(Text("World")) = websocket.receive(conn, 500)

  // Close the connection
  websocket.close(conn)
}

Testing this library

podman run --rm --detach -p 8080:8080 --name echo jmalloc/echo-server
gleam test

About

Gleam bindings to gun, the Erlang HTTP/1.1, HTTP/2 and Websocket client

Resources

Stars

Watchers

Forks

Packages

No packages published