From 338611332e05e2a35a70f11edd36b050843bcee8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Fri, 20 Nov 2020 11:08:59 +0100 Subject: Gun 2.0.0-rc.1 --- _build/content/articles/gun-2.0.0-rc.1.asciidoc | 71 +++++ 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/cowboy-2.7.0/index.html | 4 + articles/cowboy-2.8.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/github-sponsors/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 | 4 + articles/gun-2.0.0-pre.2/index.html | 4 + articles/gun-2.0.0-rc.1/index.html | 342 +++++++++++++++++++++ articles/index.html | 35 ++- 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/merry-christmas-2019/index.html | 4 + articles/ml-archives/index.html | 4 + articles/on-open-source/index.html | 4 + articles/page/2/index.html | 34 +- articles/page/3/index.html | 17 + 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-2.0.0/index.html | 4 + articles/ranch-ftp/index.html | 4 + articles/the-elephant-in-the-room/index.html | 4 + articles/the-gateway-trilogy/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/2.0/guide/migrating_from_1.3.asciidoc | 2 +- .../en/gun/2.0/guide/migrating_from_1.3/index.html | 2 +- docs/index.xml | 2 +- donate/index.html | 2 + erlanger-playbook/index.html | 2 + index.html | 2 + index.xml | 13 +- services/index.html | 2 + sitemap.xml | 15 +- 66 files changed, 714 insertions(+), 44 deletions(-) create mode 100644 _build/content/articles/gun-2.0.0-rc.1.asciidoc create mode 100644 articles/gun-2.0.0-rc.1/index.html diff --git a/_build/content/articles/gun-2.0.0-rc.1.asciidoc b/_build/content/articles/gun-2.0.0-rc.1.asciidoc new file mode 100644 index 00000000..3d99038f --- /dev/null +++ b/_build/content/articles/gun-2.0.0-rc.1.asciidoc @@ -0,0 +1,71 @@ ++++ +date = "2020-11-19T07:00:00+01:00" +title = "Gun 2.0 release candidate 1" + ++++ + +Gun `2.0.0-rc.1` has been released! + +Gun 2.0 adds a ton of features along with a small number +of breaking changes. + +Gun 2.0 includes state of the art tunnel support. With +Gun 2.0 it is possible to make requests or data go through +any number of proxy endpoints using any combination of +TCP or TLS transports and HTTP/1.1, HTTP/2 or SOCKS5 +protocols. All combinations of the scenario Proxy1 -> +Proxy2 -> Origin are tested and known to work. + +You can watch a demo of the tunnel support below. This +video is the first of its kind. If you like it, or you +don't like it, please tell me! I intend to continue +producing those on a semi-regular basis. Watch: + +++++ + +++++ + +Gun 2.0 can now be used to send and receive raw data, +as if it was just a normal socket. This can be +useful when needing to connect through a number +of HTTP/SOCKS5 proxies, allowing the use of Gun's +great proxying capabilities for non-Web protocols. +This can also be useful when performing HTTP/1.1 +Upgrade to custom protocols. + +Gun 2.0 adds many more features such as Websocket over +HTTP/2, a built-in cookie store, graceful shutdown, flow +control for data messages, event handlers and more. + +Gun 2.0 greatly improves the HTTP/2 performance when it +comes to receiving large response bodies; and when receiving +response bodies from many separate requests concurrently. + +Gun now shares much of its HTTP/2 code with Cowboy, +including the HTTP/2 state machine. Numerous issues were +fixed as a result because the Cowboy implementation was +much more advanced. + +The Gun connection process is now implemented using `gen_statem`. + +Gun 2.0 requires Erlang/OTP 22.0 or greater 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]. + +At the time of writing my next big task will be implementing +HTTP/3 and QUIC. In order to maximize the time I spend on +this task I am looking for funds. You can use the sponsors +link below or contact me with offers at +mailto:contact@ninenines.eu[contact@ninenines.eu]. I am open +to any and all suggestions. + +You can donate to this project via +https://github.com/sponsors/essen[GitHub Sponsors]. + +As usual, feedback is appreciated, and issues or +questions should be sent via Github tickets. Thanks! diff --git a/articles/asciideck/index.html b/articles/asciideck/index.html index 26c5a80a..aae03abc 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 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/cowboy-2.0.0-pre.4/index.html b/articles/cowboy-2.0.0-pre.4/index.html index 41d714b9..491978bb 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 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/cowboy-2.0.0-rc.1/index.html b/articles/cowboy-2.0.0-rc.1/index.html index e550ce0e..619ebbe5 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 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/cowboy-2.0.0-rc.2/index.html b/articles/cowboy-2.0.0-rc.2/index.html index bfbbfe72..dfeea211 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 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/cowboy-2.0.0/index.html b/articles/cowboy-2.0.0/index.html index 31945557..0de17ba3 100644 --- a/articles/cowboy-2.0.0/index.html +++ b/articles/cowboy-2.0.0/index.html @@ -99,6 +99,10 @@ +
  • Gun 2.0 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/cowboy-2.1.0/index.html b/articles/cowboy-2.1.0/index.html index 2f438c3c..64c14a4b 100644 --- a/articles/cowboy-2.1.0/index.html +++ b/articles/cowboy-2.1.0/index.html @@ -96,6 +96,10 @@ +
  • Gun 2.0 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/cowboy-2.2.0/index.html b/articles/cowboy-2.2.0/index.html index b3353c5b..76414b79 100644 --- a/articles/cowboy-2.2.0/index.html +++ b/articles/cowboy-2.2.0/index.html @@ -94,6 +94,10 @@ +
  • Gun 2.0 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/cowboy-2.3.0/index.html b/articles/cowboy-2.3.0/index.html index 01df5155..4aa69fab 100644 --- a/articles/cowboy-2.3.0/index.html +++ b/articles/cowboy-2.3.0/index.html @@ -86,6 +86,10 @@ +
  • Gun 2.0 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/cowboy-2.4.0/index.html b/articles/cowboy-2.4.0/index.html index 5999245a..31fe7075 100644 --- a/articles/cowboy-2.4.0/index.html +++ b/articles/cowboy-2.4.0/index.html @@ -88,6 +88,10 @@ +
  • Gun 2.0 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/cowboy-2.5.0/index.html b/articles/cowboy-2.5.0/index.html index 1b5b9cdb..8f9c7417 100644 --- a/articles/cowboy-2.5.0/index.html +++ b/articles/cowboy-2.5.0/index.html @@ -92,6 +92,10 @@ +
  • Gun 2.0 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/cowboy-2.6.0/index.html b/articles/cowboy-2.6.0/index.html index b01aad56..cdbfd0c0 100644 --- a/articles/cowboy-2.6.0/index.html +++ b/articles/cowboy-2.6.0/index.html @@ -89,6 +89,10 @@ +
  • Gun 2.0 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/cowboy-2.7.0/index.html b/articles/cowboy-2.7.0/index.html index 152fae14..73d19b3f 100644 --- a/articles/cowboy-2.7.0/index.html +++ b/articles/cowboy-2.7.0/index.html @@ -90,6 +90,10 @@ +
  • Gun 2.0 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/cowboy-2.8.0/index.html b/articles/cowboy-2.8.0/index.html index 88aa525f..f8ca13a5 100644 --- a/articles/cowboy-2.8.0/index.html +++ b/articles/cowboy-2.8.0/index.html @@ -89,6 +89,10 @@ +
  • Gun 2.0 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/cowboy2-qs/index.html b/articles/cowboy2-qs/index.html index 53601718..19892c2f 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 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/dont-let-it-crash/index.html b/articles/dont-let-it-crash/index.html index d70fdad3..f9e842f2 100644 --- a/articles/dont-let-it-crash/index.html +++ b/articles/dont-let-it-crash/index.html @@ -105,6 +105,10 @@ +
  • Gun 2.0 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/erlang-meetup-10-septembre-2019/index.html b/articles/erlang-meetup-10-septembre-2019/index.html index 9efcbc02..96311620 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 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/erlang-scalability/index.html b/articles/erlang-scalability/index.html index 6f1a3ac9..b66990f8 100644 --- a/articles/erlang-scalability/index.html +++ b/articles/erlang-scalability/index.html @@ -117,6 +117,10 @@ +
  • Gun 2.0 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/erlang-validate-utf8/index.html b/articles/erlang-validate-utf8/index.html index 2f792e29..7c30f3a4 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 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/erlang.mk-and-relx/index.html b/articles/erlang.mk-and-relx/index.html index f3837134..af48a2b5 100644 --- a/articles/erlang.mk-and-relx/index.html +++ b/articles/erlang.mk-and-relx/index.html @@ -119,6 +119,10 @@ cowboy-0.8.5 erlydtl-0.7.0 ninenines-0.2.0 stdlib-1.19.1 +
  • Gun 2.0 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/erlanger-playbook-september-2015-update/index.html b/articles/erlanger-playbook-september-2015-update/index.html index a1bf7a9d..7219fbc6 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 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/erlanger-playbook/index.html b/articles/erlanger-playbook/index.html index 9d8393de..efaf15de 100644 --- a/articles/erlanger-playbook/index.html +++ b/articles/erlanger-playbook/index.html @@ -129,6 +129,10 @@ +
  • Gun 2.0 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/farwest-funded/index.html b/articles/farwest-funded/index.html index 0901e970..48aaffb0 100644 --- a/articles/farwest-funded/index.html +++ b/articles/farwest-funded/index.html @@ -89,6 +89,10 @@ +
  • Gun 2.0 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/github-sponsors/index.html b/articles/github-sponsors/index.html index 395e222e..81d295a7 100644 --- a/articles/github-sponsors/index.html +++ b/articles/github-sponsors/index.html @@ -86,6 +86,10 @@ +
  • Gun 2.0 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/gun-1.0.0-rc.1/index.html b/articles/gun-1.0.0-rc.1/index.html index 76f03e3f..20a4f907 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 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/gun-1.0.0/index.html b/articles/gun-1.0.0/index.html index 580a3044..8d80d7c5 100644 --- a/articles/gun-1.0.0/index.html +++ b/articles/gun-1.0.0/index.html @@ -89,6 +89,10 @@ +
  • Gun 2.0 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/gun-1.2.0/index.html b/articles/gun-1.2.0/index.html index 266f616c..2c1f2bb8 100644 --- a/articles/gun-1.2.0/index.html +++ b/articles/gun-1.2.0/index.html @@ -89,6 +89,10 @@ +
  • Gun 2.0 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/gun-1.3.0/index.html b/articles/gun-1.3.0/index.html index 59eaf31c..ed6c27ba 100644 --- a/articles/gun-1.3.0/index.html +++ b/articles/gun-1.3.0/index.html @@ -87,6 +87,10 @@ +
  • Gun 2.0 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/gun-2.0.0-pre.1/index.html b/articles/gun-2.0.0-pre.1/index.html index f8466905..2bfd9e35 100644 --- a/articles/gun-2.0.0-pre.1/index.html +++ b/articles/gun-2.0.0-pre.1/index.html @@ -94,6 +94,10 @@ +
  • Gun 2.0 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/gun-2.0.0-pre.2/index.html b/articles/gun-2.0.0-pre.2/index.html index 0546446d..9619d12b 100644 --- a/articles/gun-2.0.0-pre.2/index.html +++ b/articles/gun-2.0.0-pre.2/index.html @@ -92,6 +92,10 @@ +
  • Gun 2.0 release candidate 1
  • + + +
  • Ranch 2.0
  • diff --git a/articles/gun-2.0.0-rc.1/index.html b/articles/gun-2.0.0-rc.1/index.html new file mode 100644 index 00000000..d592679e --- /dev/null +++ b/articles/gun-2.0.0-rc.1/index.html @@ -0,0 +1,342 @@ + + + + + + + + + + Nine Nines: Gun 2.0 release candidate 1 + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +
    +

    Gun 2.0 release candidate 1

    +

    + 2020 + 19 Nov +

    +
    + +

    Gun 2.0.0-rc.1 has been released!

    +

    Gun 2.0 adds a ton of features along with a small number of breaking changes.

    +

    Gun 2.0 includes state of the art tunnel support. With Gun 2.0 it is possible to make requests or data go through any number of proxy endpoints using any combination of TCP or TLS transports and HTTP/1.1, HTTP/2 or SOCKS5 protocols. All combinations of the scenario Proxy1 -> Proxy2 -> Origin are tested and known to work.

    +

    You can watch a demo of the tunnel support below. This video is the first of its kind. If you like it, or you don't like it, please tell me! I intend to continue producing those on a semi-regular basis. Watch:

    +

    Gun 2.0 can now be used to send and receive raw data, as if it was just a normal socket. This can be useful when needing to connect through a number of HTTP/SOCKS5 proxies, allowing the use of Gun's great proxying capabilities for non-Web protocols. This can also be useful when performing HTTP/1.1 Upgrade to custom protocols.

    +

    Gun 2.0 adds many more features such as Websocket over HTTP/2, a built-in cookie store, graceful shutdown, flow control for data messages, event handlers and more.

    +

    Gun 2.0 greatly improves the HTTP/2 performance when it comes to receiving large response bodies; and when receiving response bodies from many separate requests concurrently.

    +

    Gun now shares much of its HTTP/2 code with Cowboy, including the HTTP/2 state machine. Numerous issues were fixed as a result because the Cowboy implementation was much more advanced.

    +

    The Gun connection process is now implemented using gen_statem.

    +

    Gun 2.0 requires Erlang/OTP 22.0 or greater 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.

    +

    At the time of writing my next big task will be implementing HTTP/3 and QUIC. In order to maximize the time I spend on this task I am looking for funds. You can use the sponsors link below or contact me with offers at contact@ninenines.eu. I am open to any and all suggestions.

    +

    You can donate to this project via GitHub Sponsors.

    +

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

    + + +
    +
    + +
    +

    More articles

    + + +

    Feedback

    +

    Feel free to email us +if you found any mistake or need clarification on any of the +articles.

    + +
    +
    +
    +
    + + + + + + + + diff --git a/articles/index.html b/articles/index.html index 91e03d29..ff4e2685 100644 --- a/articles/index.html +++ b/articles/index.html @@ -65,6 +65,24 @@

    Articles

    +
    +
    +

    Gun 2.0 release candidate 1

    +

    + 2020 + 19 Nov +

    +
    + +

    Gun 2.0.0-rc.1 has been released! +Gun 2.0 adds a ton of features along with a small number of breaking changes. +Gun 2.0 includes state of the art tunnel support. With Gun 2.0 it is possible to make requests or data go through any number of proxy endpoints using any combination of TCP or TLS transports and HTTP/1.1, HTTP/2 or SOCKS5 protocols. All combinations of the scenario Proxy1 -> Proxy2 -> Origin are tested and known to work.

    + +

    + Read More +

    +
    +

    Ranch 2.0

    @@ -415,23 +433,6 @@ Gun has existed for many years as the test client for Cowboy and is now mature e

    -
    -
    -

    Asciideck: Asciidoc for Erlang

    -

    - 2018 - 13 Jun -

    -
    - -

    Asciideck is a new project I have been working on in my spare time that implements an Asciidoc parser and translation of Asciidoc documents into various output formats. -The Asciideck parser returns an AST for the document. That AST can be further manipulated should it be necessary: for example you may need to rewrite some relative links if you are not keeping the same file directory structure as the original Asciidoc documents.

    - -

    - Read More -

    -
    -