blob: 3f9f23fe2902689bba3d23468060166cad07e447 (
plain) (
tree)
|
|
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="Loïc Hoguin based on a design from (Soft10) Pol Cámara">
<title>Nine Nines: Cowboy 2.1</title>
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic' rel='stylesheet' type='text/css'>
<link href="/css/99s.css?r=7" rel="stylesheet">
<link rel="shortcut icon" href="/img/ico/favicon.ico">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="/img/ico/apple-touch-icon-114.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="/img/ico/apple-touch-icon-72.png">
<link rel="apple-touch-icon-precomposed" href="/img/ico/apple-touch-icon-57.png">
</head>
<body class="">
<header id="page-head">
<div id="topbar" class="container">
<div class="row">
<div class="span2">
<h1 id="logo"><a href="/" title="99s">99s</a></h1>
</div>
<div class="span10">
<div id="side-header">
<nav>
<ul>
<li class="active"><a title="Hear my thoughts" href="/articles">Articles</a></li>
<li><a title="Watch my talks" href="/talks">Talks</a></li>
<li><a title="Read the docs" href="/docs">Documentation</a></li>
<li><a title="Request my services" href="/services">Consulting & Training</a></li>
</ul>
</nav>
<ul id="social">
<li>
<a href="https://github.com/ninenines" title="Check my Github repositories"><img src="/img/ico_github.png" data-hover="/img/ico_github_alt.png" alt="Github"></a>
</li>
<li>
<a title="Contact me" href="mailto:[email protected]"><img src="/img/ico_mail.png" data-hover="/img/ico_mail_alt.png"></a>
</li>
</ul>
</div>
</div>
</div>
</div>
</header>
<div id="contents">
<div class="container">
<div class="row">
<div class="span9 maincol">
<article class="blog_item">
<header>
<h1 class="lined-header"><span>Cowboy 2.1</span></h1>
<p class="date">
<span class="year">2017</span>
<span class="day-month">09 Nov</span>
</p>
</header>
<p>Cowboy <code>2.1.0</code> has been released!</p>
<p>This release focused on adding features that were temporarily removed during the 2.0 release process:</p>
<ul><li>The client TLS certificate can now be obtained.
</li>
<li>The 100 Continue response is now sent automatically again when necessary.
</li>
<li>NEW: It is now possible to send informational responses (1XX) directly from user code via the <code>cowboy_req:inform/2,3</code> functions.
</li>
<li>NEW: <code>cowboy_rest</code> handlers can now switch to any other type of handler from almost any callback. This is especially useful to switch to <code>cowboy_loop</code> to stream the request or response body.
</li>
</ul>
<p>A number of bugs have also been fixed. A more complete list of changes can be found in the migration guide: <a href="https://ninenines.eu/docs/en/cowboy/2.1/guide/migrating_from_2.0/">Migrating from Cowboy 2.0 to 2.1</a>.</p>
<p>The next release will see the added support for trailers, which are necessary for implementing the gRPC protocol.</p>
<p>You can donate to this project via <a href="https://github.com/sponsors/essen">GitHub Sponsors</a> because I need to eat snacks when I write code. Thanks in advance!</p>
<p>As usual, any feedback is appreciated, and any issues should be reported by opening a ticket. Thanks!</p>
</article>
</div>
<div class="span3 sidecol">
<h3>More articles</h3>
<ul id="articles-nav" class="extra_margin">
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
<li><a href="https://ninenines.eu/articles/ranch-2.1.0/">Ranch 2.1</a></li>
<li><a href="https://ninenines.eu/articles/cowboy-2.9.0/">Cowboy 2.9</a></li>
<li><a href="https://ninenines.eu/articles/gun-2.0.0-rc.1/">Gun 2.0 release candidate 1</a></li>
<li><a href="https://ninenines.eu/articles/ranch-2.0.0/">Ranch 2.0</a></li>
<li><a href="https://ninenines.eu/articles/cowboy-2.8.0/">Cowboy 2.8</a></li>
<li><a href="https://ninenines.eu/articles/the-gateway-trilogy/">The Gateway Trilogy</a></li>
<li><a href="https://ninenines.eu/articles/gun-2.0.0-pre.2/">Gun 2.0 pre-release 2</a></li>
<li><a href="https://ninenines.eu/articles/merry-christmas-2019/">Merry Christmas 2019: New Beginnings</a></li>
<li><a href="https://ninenines.eu/articles/github-sponsors/">GitHub Sponsors</a></li>
<li><a href="https://ninenines.eu/articles/cowboy-2.7.0/">Cowboy 2.7</a></li>
<li><a href="https://ninenines.eu/articles/gun-2.0.0-pre.1/">Gun 2.0 pre-release 1</a></li>
<li><a href="https://ninenines.eu/articles/erlang-meetup-10-septembre-2019/">Erlang meetup: 10 septembre 2019</a></li>
<li><a href="https://ninenines.eu/articles/ranch-2.0.0-rc.1/">Ranch 2.0 release candidate 1</a></li>
<li><a href="https://ninenines.eu/articles/joe_the_rubber_duck/">Joe Armstrong the rubber duck</a></li>
<li><a href="https://ninenines.eu/articles/merry-christmas-2018/">Merry Christmas 2018: A Recap</a></li>
<li><a href="https://ninenines.eu/articles/cowboy-2.6.0/">Cowboy 2.6</a></li>
<li><a href="https://ninenines.eu/articles/ranch-1.7.0/">Ranch 1.7</a></li>
<li><a href="https://ninenines.eu/articles/cowboy-2.5.0/">Cowboy 2.5</a></li>
<li><a href="https://ninenines.eu/articles/gun-1.3.0/">Gun 1.3</a></li>
<li><a href="https://ninenines.eu/articles/gun-1.2.0/">Gun 1.2</a></li>
<li><a href="https://ninenines.eu/articles/ranch-1.6.0/">Ranch 1.6</a></li>
<li><a href="https://ninenines.eu/articles/gun-1.0.0/">Gun 1.0</a></li>
<li><a href="https://ninenines.eu/articles/asciideck/">Asciideck: Asciidoc for Erlang</a></li>
<li><a href="https://ninenines.eu/articles/gun-1.0.0-rc.1/">Gun 1.0 release candidate 1</a></li>
<li><a href="https://ninenines.eu/articles/cowboy-2.4.0/">Cowboy 2.4</a></li>
<li><a href="https://ninenines.eu/articles/cowboy-2.3.0/">Cowboy 2.3</a></li>
<li><a href="https://ninenines.eu/articles/cowboy-2.2.0/">Cowboy 2.2</a></li>
<li><a href="https://ninenines.eu/articles/cowboy-2.1.0/">Cowboy 2.1</a></li>
<li><a href="https://ninenines.eu/articles/cowboy-2.0.0/">Cowboy 2.0</a></li>
<li><a href="https://ninenines.eu/articles/cowboy-2.0.0-rc.2/">Cowboy 2.0 release candidate 2</a></li>
<li><a href="https://ninenines.eu/articles/cowboy-2.0.0-rc.1/">Cowboy 2.0 release candidate 1</a></li>
<li><a href="https://ninenines.eu/articles/the-elephant-in-the-room/">The elephant in the room</a></li>
<li><a href="https://ninenines.eu/articles/dont-let-it-crash/">Don't let it crash</a></li>
<li><a href="https://ninenines.eu/articles/cowboy-2.0.0-pre.4/">Cowboy 2.0 pre-release 4</a></li>
<li><a href="https://ninenines.eu/articles/ranch-1.3/">Ranch 1.3</a></li>
<li><a href="https://ninenines.eu/articles/ml-archives/">Mailing list archived</a></li>
<li><a href="https://ninenines.eu/articles/website-update/">Website update</a></li>
<li><a href="https://ninenines.eu/articles/erlanger-playbook-september-2015-update/">The Erlanger Playbook September 2015 Update</a></li>
<li><a href="https://ninenines.eu/articles/erlanger-playbook/">The Erlanger Playbook</a></li>
<li><a href="https://ninenines.eu/articles/erlang-validate-utf8/">Validating UTF-8 binaries with Erlang</a></li>
<li><a href="https://ninenines.eu/articles/on-open-source/">On open source</a></li>
<li><a href="https://ninenines.eu/articles/the-story-so-far/">The story so far</a></li>
<li><a href="https://ninenines.eu/articles/cowboy2-qs/">Cowboy 2.0 and query strings</a></li>
<li><a href="https://ninenines.eu/articles/january-2014-status/">January 2014 status</a></li>
<li><a href="https://ninenines.eu/articles/farwest-funded/">Farwest got funded!</a></li>
<li><a href="https://ninenines.eu/articles/erlang.mk-and-relx/">Build Erlang releases with Erlang.mk and Relx</a></li>
<li><a href="https://ninenines.eu/articles/xerl-0.5-intermediate-module/">Xerl: intermediate module</a></li>
<li><a href="https://ninenines.eu/articles/xerl-0.4-expression-separator/">Xerl: expression separator</a></li>
<li><a href="https://ninenines.eu/articles/erlang-scalability/">Erlang Scalability</a></li>
<li><a href="https://ninenines.eu/articles/xerl-0.3-atomic-expressions/">Xerl: atomic expressions</a></li>
<li><a href="https://ninenines.eu/articles/xerl-0.2-two-modules/">Xerl: two modules</a></li>
<li><a href="https://ninenines.eu/articles/xerl-0.1-empty-modules/">Xerl: empty modules</a></li>
<li><a href="https://ninenines.eu/articles/ranch-ftp/">Build an FTP Server with Ranch in 30 Minutes</a></li>
<li><a href="https://ninenines.eu/articles/tictactoe/">Erlang Tic Tac Toe</a></li>
</ul>
<h3>Feedback</h3>
<p>Feel free to <a href="mailto:[email protected]">email us</a>
if you found any mistake or need clarification on any of the
articles.</p>
</div>
</div>
</div>
</div>
<footer>
<div class="container">
<div class="row">
<div class="span6">
<p id="scroll-top"><a href="#">↑ Scroll to top</a></p>
<nav>
<ul>
<li><a href="mailto:[email protected]" title="Contact us">Contact us</a></li><li><a href="https://github.com/ninenines/ninenines.github.io" title="Github repository">Contribute to this site</a></li>
</ul>
</nav>
</div>
<div class="span6 credits">
<p><img src="/img/footer_logo.png"></p>
<p>Copyright © Loïc Hoguin 2012-2018</p>
</div>
</div>
</div>
</footer>
<script src="/js/custom.js"></script>
</body>
</html>
|