= gun(7)

== Name

gun - HTTP/1.1, HTTP/2 and Websocket client for Erlang/OTP

== Description

Gun is an HTTP client for Erlang/OTP with support for the
HTTP/1.1, HTTP/2 and Websocket protocols.

Gun aims to provide an easy to use, asynchronous and
always-connected client. It maintains a permanent connection
to the server and reconnects automatically when necessary.

== Modules

* link:man:gun(3)[gun(3)] - Asynchronous HTTP client
* link:man:gun_cookies(3)[gun_cookies(3)] - Cookie store engine
* link:man:gun_cookies_list(3)[gun_cookies_list(3)] - Cookie store backend: in-memory, per connection
* link:man:gun_event(3)[gun_event(3)] - Events
* link:man:gun_ws_protocol(3)[gun_ws_protocol(3)] - Websocket subprotocols

== Dependencies

* link:man:cowlib(7)[cowlib(7)] - Support library for manipulating Web protocols
* ssl - Secure communication over sockets

All these applications must be started before the `gun`
application. To start Gun and all dependencies at once:

[source,erlang]
----
{ok, _} = application:ensure_all_started(gun).
----

== Environment

The `gun` application does not define any application
environment configuration parameters.

== See also

link:man:cowlib(7)[cowlib(7)]
