From 9c173da6bd647a101bacf38aea488f5e2b304c62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Fri, 27 Sep 2019 10:23:12 +0200 Subject: Gun 2.0.0-pre.1 --- _build/content/articles/gun-2.0.0-pre.1.asciidoc | 72 ++ _build/data/projects/cowboy.toml | 2 +- _build/data/projects/gun.toml | 2 +- articles/asciideck/index.html | 4 + articles/cowboy-2.0.0-pre.4/index.html | 4 + articles/cowboy-2.0.0-rc.1/index.html | 4 + articles/cowboy-2.0.0-rc.2/index.html | 4 + articles/cowboy-2.0.0/index.html | 4 + articles/cowboy-2.1.0/index.html | 4 + articles/cowboy-2.2.0/index.html | 4 + articles/cowboy-2.3.0/index.html | 4 + articles/cowboy-2.4.0/index.html | 4 + articles/cowboy-2.5.0/index.html | 4 + articles/cowboy-2.6.0/index.html | 4 + articles/cowboy2-qs/index.html | 4 + articles/dont-let-it-crash/index.html | 4 + .../erlang-meetup-10-septembre-2019/index.html | 4 + articles/erlang-scalability/index.html | 4 + articles/erlang-validate-utf8/index.html | 4 + articles/erlang.mk-and-relx/index.html | 4 + .../index.html | 4 + articles/erlanger-playbook/index.html | 4 + articles/farwest-funded/index.html | 4 + articles/gun-1.0.0-rc.1/index.html | 4 + articles/gun-1.0.0/index.html | 4 + articles/gun-1.2.0/index.html | 4 + articles/gun-1.3.0/index.html | 4 + articles/gun-2.0.0-pre.1/index.html | 307 +++++ articles/index.html | 36 +- articles/index.xml | 13 +- articles/january-2014-status/index.html | 4 + articles/joe_the_rubber_duck/index.html | 4 + articles/merry-christmas-2018/index.html | 4 + articles/ml-archives/index.html | 4 + articles/on-open-source/index.html | 4 + articles/page/2/index.html | 38 +- articles/page/3/index.html | 20 + articles/ranch-1.3/index.html | 4 + articles/ranch-1.6.0/index.html | 4 + articles/ranch-1.7.0/index.html | 4 + articles/ranch-2.0.0-rc.1/index.html | 4 + articles/ranch-ftp/index.html | 4 + articles/the-elephant-in-the-room/index.html | 4 + articles/the-story-so-far/index.html | 4 + articles/tictactoe/index.html | 4 + articles/website-update/index.html | 4 + articles/xerl-0.1-empty-modules/index.html | 4 + articles/xerl-0.2-two-modules/index.html | 4 + articles/xerl-0.3-atomic-expressions/index.html | 4 + articles/xerl-0.4-expression-separator/index.html | 4 + articles/xerl-0.5-intermediate-module/index.html | 4 + docs/en/gun/1.3/guide/index.html | 4 +- .../en/gun/1.3/guide/migrating_from_1.2/index.html | 4 +- docs/en/gun/1.3/guide/migrating_from_1.3.asciidoc | 14 + .../en/gun/1.3/guide/migrating_from_1.3/index.html | 185 +++ docs/en/gun/1.3/guide/websocket/index.html | 4 +- docs/en/gun/2.0/guide/index.html | 4 +- docs/en/gun/2.0/guide/migrating_from_1.0.asciidoc | 2 +- docs/en/gun/2.0/guide/migrating_from_1.1.asciidoc | 4 +- docs/en/gun/2.0/guide/migrating_from_1.2.asciidoc | 2 +- .../en/gun/2.0/guide/migrating_from_1.2/index.html | 4 +- docs/en/gun/2.0/guide/migrating_from_1.3.asciidoc | 220 ++++ .../en/gun/2.0/guide/migrating_from_1.3/index.html | 284 +++++ docs/en/gun/2.0/guide/websocket/index.html | 4 +- docs/en/gun/2.0/manual/gun/index.html | 22 +- docs/index.xml | 1292 ++++++++++++++----- donate/index.html | 106 ++ index.html | 112 +- index.xml | 1313 +++++++++++++++----- services/index.html | 106 ++ sitemap.xml | 430 +++++-- 71 files changed, 3928 insertions(+), 850 deletions(-) create mode 100644 _build/content/articles/gun-2.0.0-pre.1.asciidoc create mode 100644 articles/gun-2.0.0-pre.1/index.html create mode 100644 docs/en/gun/1.3/guide/migrating_from_1.3.asciidoc create mode 100644 docs/en/gun/1.3/guide/migrating_from_1.3/index.html create mode 100644 docs/en/gun/2.0/guide/migrating_from_1.3.asciidoc create mode 100644 docs/en/gun/2.0/guide/migrating_from_1.3/index.html diff --git a/_build/content/articles/gun-2.0.0-pre.1.asciidoc b/_build/content/articles/gun-2.0.0-pre.1.asciidoc new file mode 100644 index 00000000..05680856 --- /dev/null +++ b/_build/content/articles/gun-2.0.0-pre.1.asciidoc @@ -0,0 +1,72 @@ ++++ +date = "2019-09-27T07:00:00+01:00" +title = "Gun 2.0 pre-release 1" + ++++ + +Gun `2.0.0-pre.1` has been released! + +The first 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. + +Before listing the features please note that this pre-release +includes a fix for a potential security vulnerability! This +only applies when Gun is used inside a proxy under specific +circumstances. Please see the migration guide for details. +Since the issue also exists in the previous version I have +released Gun `1.3.1` as well that fixes this issue. + +Much of my focus for Gun 2.0 has been improving the support +for connecting through proxies. Gun now supports both Socks5 +and CONNECT proxies, but most importantly Gun is now able +to tunnel TLS connections through TLS proxies. Gun is also +able to tunnel connections through any combination of proxies, +for example Socks5 TCP to CONNECT TLS to Socks5 TLS to origin +server using TLS. + +Gun does not support HTTP/2 CONNECT yet but this is a planned +feature that will be the main focus for the next pre-release. +Along with it support for Websocket over HTTP/2 will be added +since it reuses the HTTP/2 CONNECT mechanism. + +Other features include the graceful shutdown of connections; +flow control for data messages; or event handlers with many hook +points for instrumentation and other purposes. + +While experimental at the time of the pre-release, Gun can +now be used to send and receive non-HTTP/Websocket data. +Gun can therefore be used as a Socks/CONNECT client for +any protocol. Gun can also use the HTTP/1.1 Upgrade mechanism +to switch to any protocol. This feature will be documented +before the Gun 2.0 release. + +The HTTP/2 code has seen numerous fixes thanks to merging +Gun's and Cowboy's code together. In addition Gun will now +receive HTTP/2 response bodies much faster than before thanks +to better defaults and optimizations. + +Gun 2.0 currently requires Erlang/OTP 20 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]. +I have gathered that there's interest in a pure Erlang GRPC +implementation, and there's also QUIC and HTTP/3 that will +be ready soon, for example of projects I'd be interested in +working on. + +You can donate to this project via +https://salt.bountysource.com/teams/ninenines[BountySource]. +These funds are used to pay for additional servers for +testing. We will soon add two Raspberry Pi 4 in order +to have some ARM targets when testing. (The Pis are here! +Just need to install now.) + +As usual, feedback is appreciated, and issues or +questions should be sent via Github tickets. Thanks! diff --git a/_build/data/projects/cowboy.toml b/_build/data/projects/cowboy.toml index 72cdeb30..2720091c 100644 --- a/_build/data/projects/cowboy.toml +++ b/_build/data/projects/cowboy.toml @@ -4,7 +4,7 @@ description = "Cowboy is the ultimate server for the modern Web with support for name = "cowboy" repository = "https://github.com/ninenines/cowboy" versions = ["2.6", "2.5", "2.4", "2.3", "2.2"] -branches = ["master", "2.5.0", "2.4.0", "2.3.0", "2.2.2"] +branches = ["2.6.3", "2.5.0", "2.4.0", "2.3.0", "2.2.2"] has_source = true has_guide = true has_manual = true diff --git a/_build/data/projects/gun.toml b/_build/data/projects/gun.toml index 4977be7d..79280d82 100644 --- a/_build/data/projects/gun.toml +++ b/_build/data/projects/gun.toml @@ -4,7 +4,7 @@ description = "Asynchronous, always-connected client with support for HTTP/1.1, name = "gun" repository = "https://github.com/ninenines/gun" versions = ["2.0", "1.3", "1.2", "1.1", "1.0"] -branches = ["master", "1.3.0", "1.2.0", "1.1.0", "1.0.0"] +branches = ["master", "1.3.1", "1.2.0", "1.1.0", "1.0.0"] has_source = true has_guide = true has_manual = true diff --git a/articles/asciideck/index.html b/articles/asciideck/index.html index 3d0b2c0c..d15bac27 100644 --- a/articles/asciideck/index.html +++ b/articles/asciideck/index.html @@ -110,6 +110,10 @@ http://www.gnu.org/software/src-highlite --> +
  • Gun 2.0 pre-release 1
  • + + +
  • Erlang meetup: 10 septembre 2019
  • diff --git a/articles/cowboy-2.0.0-pre.4/index.html b/articles/cowboy-2.0.0-pre.4/index.html index 87a302d7..68546c82 100644 --- a/articles/cowboy-2.0.0-pre.4/index.html +++ b/articles/cowboy-2.0.0-pre.4/index.html @@ -129,6 +129,10 @@ +
  • Gun 2.0 pre-release 1
  • + + +
  • Erlang meetup: 10 septembre 2019
  • diff --git a/articles/cowboy-2.0.0-rc.1/index.html b/articles/cowboy-2.0.0-rc.1/index.html index 5c4abb86..b7b675f8 100644 --- a/articles/cowboy-2.0.0-rc.1/index.html +++ b/articles/cowboy-2.0.0-rc.1/index.html @@ -100,6 +100,10 @@ +
  • Gun 2.0 pre-release 1
  • + + +
  • Erlang meetup: 10 septembre 2019
  • diff --git a/articles/cowboy-2.0.0-rc.2/index.html b/articles/cowboy-2.0.0-rc.2/index.html index d97ae681..ae11ebc1 100644 --- a/articles/cowboy-2.0.0-rc.2/index.html +++ b/articles/cowboy-2.0.0-rc.2/index.html @@ -93,6 +93,10 @@ +
  • Gun 2.0 pre-release 1
  • + + +
  • Erlang meetup: 10 septembre 2019
  • diff --git a/articles/cowboy-2.0.0/index.html b/articles/cowboy-2.0.0/index.html index ecf37330..5b986030 100644 --- a/articles/cowboy-2.0.0/index.html +++ b/articles/cowboy-2.0.0/index.html @@ -99,6 +99,10 @@ +
  • Gun 2.0 pre-release 1
  • + + +
  • Erlang meetup: 10 septembre 2019
  • diff --git a/articles/cowboy-2.1.0/index.html b/articles/cowboy-2.1.0/index.html index 2acd2d18..39381e67 100644 --- a/articles/cowboy-2.1.0/index.html +++ b/articles/cowboy-2.1.0/index.html @@ -96,6 +96,10 @@ +
  • Gun 2.0 pre-release 1
  • + + +
  • Erlang meetup: 10 septembre 2019
  • diff --git a/articles/cowboy-2.2.0/index.html b/articles/cowboy-2.2.0/index.html index 593ddbc9..d7f4460e 100644 --- a/articles/cowboy-2.2.0/index.html +++ b/articles/cowboy-2.2.0/index.html @@ -94,6 +94,10 @@ +
  • Gun 2.0 pre-release 1
  • + + +
  • Erlang meetup: 10 septembre 2019
  • diff --git a/articles/cowboy-2.3.0/index.html b/articles/cowboy-2.3.0/index.html index 25541ce0..5f62ef99 100644 --- a/articles/cowboy-2.3.0/index.html +++ b/articles/cowboy-2.3.0/index.html @@ -86,6 +86,10 @@ +
  • Gun 2.0 pre-release 1
  • + + +
  • Erlang meetup: 10 septembre 2019
  • diff --git a/articles/cowboy-2.4.0/index.html b/articles/cowboy-2.4.0/index.html index b66aed36..a8717317 100644 --- a/articles/cowboy-2.4.0/index.html +++ b/articles/cowboy-2.4.0/index.html @@ -88,6 +88,10 @@ +
  • Gun 2.0 pre-release 1
  • + + +
  • Erlang meetup: 10 septembre 2019
  • diff --git a/articles/cowboy-2.5.0/index.html b/articles/cowboy-2.5.0/index.html index 8310b645..1cc443a8 100644 --- a/articles/cowboy-2.5.0/index.html +++ b/articles/cowboy-2.5.0/index.html @@ -92,6 +92,10 @@ +
  • Gun 2.0 pre-release 1
  • + + +
  • Erlang meetup: 10 septembre 2019
  • diff --git a/articles/cowboy-2.6.0/index.html b/articles/cowboy-2.6.0/index.html index d079cc1a..5d563160 100644 --- a/articles/cowboy-2.6.0/index.html +++ b/articles/cowboy-2.6.0/index.html @@ -89,6 +89,10 @@ +
  • Gun 2.0 pre-release 1
  • + + +
  • Erlang meetup: 10 septembre 2019
  • diff --git a/articles/cowboy2-qs/index.html b/articles/cowboy2-qs/index.html index 9faef9f7..8286d7ee 100644 --- a/articles/cowboy2-qs/index.html +++ b/articles/cowboy2-qs/index.html @@ -130,6 +130,10 @@ http://www.gnu.org/software/src-highlite --> +
  • Gun 2.0 pre-release 1
  • + + +
  • Erlang meetup: 10 septembre 2019
  • diff --git a/articles/dont-let-it-crash/index.html b/articles/dont-let-it-crash/index.html index ddbf5e7b..1e9e9110 100644 --- a/articles/dont-let-it-crash/index.html +++ b/articles/dont-let-it-crash/index.html @@ -105,6 +105,10 @@ +
  • Gun 2.0 pre-release 1
  • + + +
  • Erlang meetup: 10 septembre 2019
  • diff --git a/articles/erlang-meetup-10-septembre-2019/index.html b/articles/erlang-meetup-10-septembre-2019/index.html index 9c79cc46..f394df19 100644 --- a/articles/erlang-meetup-10-septembre-2019/index.html +++ b/articles/erlang-meetup-10-septembre-2019/index.html @@ -85,6 +85,10 @@ +
  • Gun 2.0 pre-release 1
  • + + +
  • Erlang meetup: 10 septembre 2019
  • diff --git a/articles/erlang-scalability/index.html b/articles/erlang-scalability/index.html index 2ad9daad..92f7030f 100644 --- a/articles/erlang-scalability/index.html +++ b/articles/erlang-scalability/index.html @@ -117,6 +117,10 @@ +
  • Gun 2.0 pre-release 1
  • + + +
  • Erlang meetup: 10 septembre 2019
  • diff --git a/articles/erlang-validate-utf8/index.html b/articles/erlang-validate-utf8/index.html index f7b8d782..9fa1529d 100644 --- a/articles/erlang-validate-utf8/index.html +++ b/articles/erlang-validate-utf8/index.html @@ -233,6 +233,10 @@ http://www.gnu.org/software/src-highlite --> +
  • Gun 2.0 pre-release 1
  • + + +
  • Erlang meetup: 10 septembre 2019
  • diff --git a/articles/erlang.mk-and-relx/index.html b/articles/erlang.mk-and-relx/index.html index d51bc82e..b231fb97 100644 --- a/articles/erlang.mk-and-relx/index.html +++ b/articles/erlang.mk-and-relx/index.html @@ -143,6 +143,10 @@ cowboy-0.8.5 erlydtl-0.7.0 ninenines-0.2.0 stdlib-1.19.1 +
  • Gun 2.0 pre-release 1
  • + + +
  • Erlang meetup: 10 septembre 2019
  • diff --git a/articles/erlanger-playbook-september-2015-update/index.html b/articles/erlanger-playbook-september-2015-update/index.html index 6885f090..df5b004e 100644 --- a/articles/erlanger-playbook-september-2015-update/index.html +++ b/articles/erlanger-playbook-september-2015-update/index.html @@ -88,6 +88,10 @@ +
  • Gun 2.0 pre-release 1
  • + + +
  • Erlang meetup: 10 septembre 2019
  • diff --git a/articles/erlanger-playbook/index.html b/articles/erlanger-playbook/index.html index 4e618e4c..4fc7b789 100644 --- a/articles/erlanger-playbook/index.html +++ b/articles/erlanger-playbook/index.html @@ -129,6 +129,10 @@ +
  • Gun 2.0 pre-release 1
  • + + +
  • Erlang meetup: 10 septembre 2019
  • diff --git a/articles/farwest-funded/index.html b/articles/farwest-funded/index.html index 5bd210de..7562df58 100644 --- a/articles/farwest-funded/index.html +++ b/articles/farwest-funded/index.html @@ -89,6 +89,10 @@ +
  • Gun 2.0 pre-release 1
  • + + +
  • Erlang meetup: 10 septembre 2019
  • diff --git a/articles/gun-1.0.0-rc.1/index.html b/articles/gun-1.0.0-rc.1/index.html index 32d83cc5..2cb142a3 100644 --- a/articles/gun-1.0.0-rc.1/index.html +++ b/articles/gun-1.0.0-rc.1/index.html @@ -90,6 +90,10 @@ +
  • Gun 2.0 pre-release 1
  • + + +
  • Erlang meetup: 10 septembre 2019
  • diff --git a/articles/gun-1.0.0/index.html b/articles/gun-1.0.0/index.html index 33b9cbe2..7ce8fc0d 100644 --- a/articles/gun-1.0.0/index.html +++ b/articles/gun-1.0.0/index.html @@ -89,6 +89,10 @@ +
  • Gun 2.0 pre-release 1
  • + + +
  • Erlang meetup: 10 septembre 2019
  • diff --git a/articles/gun-1.2.0/index.html b/articles/gun-1.2.0/index.html index 05f52b8b..478457b7 100644 --- a/articles/gun-1.2.0/index.html +++ b/articles/gun-1.2.0/index.html @@ -89,6 +89,10 @@ +
  • Gun 2.0 pre-release 1
  • + + +
  • Erlang meetup: 10 septembre 2019
  • diff --git a/articles/gun-1.3.0/index.html b/articles/gun-1.3.0/index.html index 12f33e2b..9c7a8510 100644 --- a/articles/gun-1.3.0/index.html +++ b/articles/gun-1.3.0/index.html @@ -87,6 +87,10 @@ +
  • Gun 2.0 pre-release 1
  • + + +
  • Erlang meetup: 10 septembre 2019
  • diff --git a/articles/gun-2.0.0-pre.1/index.html b/articles/gun-2.0.0-pre.1/index.html new file mode 100644 index 00000000..ef68e267 --- /dev/null +++ b/articles/gun-2.0.0-pre.1/index.html @@ -0,0 +1,307 @@ + + + + + + + + + + Nine Nines: Gun 2.0 pre-release 1 + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +
    +

    Gun 2.0 pre-release 1

    +

    + 2019 + 27 Sep +

    +
    + +

    Gun 2.0.0-pre.1 has been released!

    +

    The first 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.

    +

    Before listing the features please note that this pre-release includes a fix for a potential security vulnerability! This only applies when Gun is used inside a proxy under specific circumstances. Please see the migration guide for details. Since the issue also exists in the previous version I have released Gun 1.3.1 as well that fixes this issue.

    +

    Much of my focus for Gun 2.0 has been improving the support for connecting through proxies. Gun now supports both Socks5 and CONNECT proxies, but most importantly Gun is now able to tunnel TLS connections through TLS proxies. Gun is also able to tunnel connections through any combination of proxies, for example Socks5 TCP to CONNECT TLS to Socks5 TLS to origin server using TLS.

    +

    Gun does not support HTTP/2 CONNECT yet but this is a planned feature that will be the main focus for the next pre-release. Along with it support for Websocket over HTTP/2 will be added since it reuses the HTTP/2 CONNECT mechanism.

    +

    Other features include the graceful shutdown of connections; flow control for data messages; or event handlers with many hook points for instrumentation and other purposes.

    +

    While experimental at the time of the pre-release, Gun can now be used to send and receive non-HTTP/Websocket data. Gun can therefore be used as a Socks/CONNECT client for any protocol. Gun can also use the HTTP/1.1 Upgrade mechanism to switch to any protocol. This feature will be documented before the Gun 2.0 release.

    +

    The HTTP/2 code has seen numerous fixes thanks to merging Gun's and Cowboy's code together. In addition Gun will now receive HTTP/2 response bodies much faster than before thanks to better defaults and optimizations.

    +

    Gun 2.0 currently requires Erlang/OTP 20 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: 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 contact@ninenines.eu. I have gathered that there's interest in a pure Erlang GRPC implementation, and there's also QUIC and HTTP/3 that will be ready soon, for example of projects I'd be interested in working on.

    +

    You can donate to this project via BountySource. These funds are used to pay for additional servers for testing. We will soon add two Raspberry Pi 4 in order to have some ARM targets when testing. (The Pis are here! Just need to install now.)

    +

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

    + + +
    +
    + + +
    +
    +
    + + + + + + + + diff --git a/articles/index.html b/articles/index.html index 798fbcab..2668b7e9 100644 --- a/articles/index.html +++ b/articles/index.html @@ -65,6 +65,24 @@

    Articles

    +
    +
    +

    Gun 2.0 pre-release 1

    +

    + 2019 + 27 Sep +

    +
    + +

    Gun 2.0.0-pre.1 has been released! +The first 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. +Before listing the features please note that this pre-release includes a fix for a potential security vulnerability! This only applies when Gun is used inside a proxy under specific circumstances. Please see the migration guide for details. Since the issue also exists in the previous version I have released Gun 1.

    + +

    + Read More +

    +
    +

    Erlang meetup: 10 septembre 2019

    @@ -419,24 +437,6 @@ HTTP/2 server push was using the wrong header compression context. HTTP/2 flow

    -
    -
    -

    Cowboy 2.0 release candidate 1

    -

    - 2017 - 24 Jul -

    -
    - -

    Cowboy 2.0.0-rc.1 has been released! -This is the new recommended version of Cowboy. Its API should not change before release. While you probably should not use it in production yet, many do successfully. Use at your own risk. -The plan is to have a new RC version every couple weeks until the summer ends or later if there are still blocking issues open. Only issues that can't be fixed without making breaking changes to the interface may block the release.

    - -

    - Read More -

    -
    -