1.0.0 has been released!
Gun is an HTTP/1.1, HTTP/2 and Websocket client for Erlang/OTP.
Gun provides an asynchronous interface and will keep the connection open to the server, reconnecting as necessary.
Gun has existed for many years as the test client for Cowboy and is now mature enough to receive a proper version. Gun is battle tested by customers and other users but is not the most well tested client there is.
I have given the Cowboy treatment to the Gun manual: a separate page per function call with all kind of useful information, including examples. Since Gun provides an asynchronous interface, each message also has a separate manual page. Check it out: https://ninenines.eu/docs/en/gun/1.0/manual/
Gun 1.0 comes with a number of undocumented features that you are welcome to try out. They include content handlers which can be used to decode content on the fly or Websocket handlers for implementing protocols directly inside the Gun process. They will be documented as part of the next few releases.
You can donate to this project via BountySource. These funds are used to pay for additional servers for testing. A new server was added last month and allows me to test with additional Linux distributions Alpine, CentOS and Debian. Thanks in advance!
As usual, feedback is appreciated, and issues or questions should be sent via Github tickets. Thanks!