+++
date = "2019-09-27T07:00:00+01:00"
title = "Gun 2.0 pre-release 2"

+++

Gun `2.0.0-pre.2` has been released!

The second pre-release version of Gun 2.0 has been released!
Gun 2.0 adds a ton of features along with a small number of
breaking changes.

The main highlight of this pre-release is the support for
a pluggable cookie store mechanism. Gun 2.0 comes with a
cookie store engine that can automatically process cookies
and store them to and retrieve them from a pluggable backend.

Gun 2.0 comes with the `gun_cookies_list` backend which can
be enabled via the new `cookie_store` option. This backend
will keep cookies in-memory on a per-connection basis and
without any persistence built-in. It should however be easy
to create a backend on top of this one to add persistence
or share the cookie store backend between multiple connections
should that be necessary.

The cookie store engine implements the RFC6265bis draft that
will become a proper RFC in the nearby future and includes
all the most recent improvements to cookies that modern
browsers have implemented. Gun is not a browser however so
some features were skipped (at least for now): there is no
support for setting cookies from the Erlang side; and there
is no SameSite checks because Gun does not have a concept of
a "browsing context".

Please consult the link:/articles/gun-2.0.0-pre.1/[announcement for the first pre-release]
for information about other Gun 2.0 features.

Gun 2.0 currently requires Erlang/OTP 22 or above and is tested
and supported on Linux, FreeBSD, macOS and Windows.

A complete
list of changes can be found in the migration guide:
https://ninenines.eu/docs/en/gun/2.0/guide/migrating_from_1.3/[Migrating from Gun 1.3 to 2.0].

I will have more free time available for consulting or for
paid open source development starting from next week. If you
are interested, drop me an email at mailto:contact@ninenines.eu[contact@ninenines.eu].
A feature that may be useful for some of you could be for
example an implementation for the "Happy Eyeballs" mechanism
(RFC 8305) as this would allow faster connections to servers
on dual IPv4 and IPv6 environments.

You can donate to this project via
https://github.com/sponsors/essen[GitHub Sponsors].
These funds are used to pay for additional servers for
testing.

As usual, feedback is appreciated, and issues or
questions should be sent via Github tickets. Thanks!
