<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="68801" data-post-id="68801">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Crowdhailer" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Crowdhailer/120/2438_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Crowdhailer
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Raxx</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<h3><a name="p-68801-raxx-0148httpshexpmpackagesraxx0148-released-1" class="anchor" href="#p-68801-raxx-0148httpshexpmpackagesraxx0148-released-1" aria-label="Heading link" rel="nofollow"></a><a href="https://hex.pm/packages/raxx/0.14.8" rel="nofollow">Raxx 0.14.8</a> released</h3>
<p>Configuration option allows extra statuses to be added.</p>
<p>e.g.</p>
<pre><code># config/config.exs
config :raxx,
  :extra_statuses, [{418, "Im A Teapot"}]


# iex -S mix
Raxx.response(:im_a_teaport)
# =&gt; %{status: 418, ...}
</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="68801" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/raxx-interface-for-http-webservers-frameworks-and-clients-1-0-now-released/9380/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-68801" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="68801"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #11"></div>
  </section>
</div>
    <div class="postbit" id="71501" data-post-id="71501">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Crowdhailer" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Crowdhailer/120/2438_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Crowdhailer
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Raxx</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<h3><a name="p-71501-raxx-01410httpshexpmpackagesraxx01410-released-1" class="anchor" href="#p-71501-raxx-01410httpshexpmpackagesraxx01410-released-1" aria-label="Heading link" rel="nofollow"></a><a href="https://hex.pm/packages/raxx/0.14.10" rel="nofollow">Raxx 0.14.10</a> released</h3>
<p>Default instructional page is now server with status 404 (was 200). Helps reduce false positive in test cases.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="71501" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/raxx-interface-for-http-webservers-frameworks-and-clients-1-0-now-released/9380/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-71501" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="71501"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #12"></div>
  </section>
</div>
    <div class="postbit" id="74030" data-post-id="74030">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Crowdhailer" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Crowdhailer/120/2438_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Crowdhailer
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Raxx</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<h3><a name="p-74030-raxx-01412httpshexpmpackagesraxx01412-released-including-helper-for-browser-redirection-1" class="anchor" href="#p-74030-raxx-01412httpshexpmpackagesraxx01412-released-including-helper-for-browser-redirection-1" aria-label="Heading link" rel="nofollow"></a><a href="https://hex.pm/packages/raxx/0.14.12" rel="nofollow">Raxx 0.14.12</a> released, including helper for browser redirection.</h3>
<p><em>From the changelog</em></p>
<h5><a name="p-74030-added-2" class="anchor" href="#p-74030-added-2" aria-label="Heading link" rel="nofollow"></a>Added</h5>
<ul>
<li><code>Raxx.get_header/2</code> for fetching a single header value from a request/response.</li>
<li><code>Raxx.redirect/2</code> will generate a redirect response directing browser to another url.</li>
<li>Header values checked for forbidden charachters using <code>Raxx.set_header/3</code>.</li>
<li><code>Raxx.get_header/3</code> return fallback value if required header is not set.</li>
</ul> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="74030" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/raxx-interface-for-http-webservers-frameworks-and-clients-1-0-now-released/9380/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-74030" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="74030"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #13"></div>
  </section>
</div>
    <div class="postbit" id="74646" data-post-id="74646">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Crowdhailer" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Crowdhailer/120/2438_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Crowdhailer
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Raxx</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<h3><a name="p-74646-basic-authentication-and-sessions-added-in-01413httpshexpmpackagesraxx01413-release-1" class="anchor" href="#p-74646-basic-authentication-and-sessions-added-in-01413httpshexpmpackagesraxx01413-release-1" aria-label="Heading link" rel="nofollow"></a>Basic authentication and Sessions added in <a href="https://hex.pm/packages/raxx/0.14.13" rel="nofollow">0.14.13</a> release.</h3>
<p>This release adds two new modules to the core Raxx project</p>
<ul>
<li><a href="https://hexdocs.pm/raxx/0.14.13/Raxx.BasicAuth.html#content" rel="noopener nofollow ugc">Raxx.BasicAuth</a> Add protection to a Raxx application using Basic Authentication.</li>
<li><a href="https://hexdocs.pm/raxx/0.14.13/Raxx.Session.SignedCookie.html#content" rel="noopener nofollow ugc">Raxx.Session.SignedCookie</a> Use signed cookies to store the session of a client.</li>
</ul> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="74646" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/raxx-interface-for-http-webservers-frameworks-and-clients-1-0-now-released/9380/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-74646" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="74646"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #14"></div>
  </section>
</div>
    <div class="postbit" id="75039" data-post-id="75039">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Crowdhailer" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Crowdhailer/120/2438_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Crowdhailer
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Raxx</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<h3><a name="p-75039-secure-browser-headers-and-request_id-middleware-added-in-01414httpshexpmpackagesraxx01414-1" class="anchor" href="#p-75039-secure-browser-headers-and-request_id-middleware-added-in-01414httpshexpmpackagesraxx01414-1" aria-label="Heading link" rel="nofollow"></a>Secure browser headers and request_id middleware added in <a href="https://hex.pm/packages/raxx/0.14.14" rel="nofollow">0.14.14</a></h3>
<h3><a name="p-75039-added-2" class="anchor" href="#p-75039-added-2" aria-label="Heading link" rel="nofollow"></a>Added</h3>
<ul>
<li><code>Raxx.set_secure_browser_headers/1</code> Adds a collection of useful headers when responding to a browser.</li>
<li><code>Raxx.delete_header/2</code> delete a header from request or response.</li>
<li><code>Raxx.RequestID</code> assign a request id to every request handled by an application</li>
</ul> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="75039" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/raxx-interface-for-http-webservers-frameworks-and-clients-1-0-now-released/9380/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-75039" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="75039"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #15"></div>
  </section>
</div>
    <div class="postbit" id="78727" data-post-id="78727">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Crowdhailer" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Crowdhailer/120/2438_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Crowdhailer
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Raxx</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<h3><a name="p-78727-major-release-0150httpshexpmpackagesraxx0150-1" class="anchor" href="#p-78727-major-release-0150httpshexpmpackagesraxx0150-1" aria-label="Heading link" rel="nofollow"></a>major release <a href="https://hex.pm/packages/raxx/0.15.0" rel="nofollow">0.15.0</a>.</h3>
<p><code>%Raxx.Request{}</code> now has query strings as a binary, to access the parsed query use <code>Raxx.fetch_query/1</code></p>
<p>This allows consumers to access the raw query to handle parsing in different ways, such as accepting multiple values per key or implementing nested queries. It is also more performant for servers because they do not parse queries that are not used</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="78727" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/raxx-interface-for-http-webservers-frameworks-and-clients-1-0-now-released/9380/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-78727" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="78727"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #16"></div>
  </section>
</div>
    <div class="postbit" id="78736" data-post-id="78736">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Qqwy" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Qqwy/120/1349_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Qqwy
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>TypeCheck Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>First of all, let me say that I think it is a great idea that other types of solutions besides Plug are being explored. I think the message-passing model could work really well, and I am very interested to see how it evolves.</p>
<p>However, I am not really happy with how the middlewares currently work, since they ‘decorate’ the original <code>handle_xxxx</code> call with their own wrapper at compile time which may result in performant code, but it makes the middleware code itself quite hard to read.</p>
<p>And as a secondary issue, changes in one of the middlewares will probably result in Elixir having to re-compile a lot of your application since these are compile-time behaviours that will live at the core of your webserver. This was also a problem in Plug that was recently mitigated by opting out of the compile-time consolidation-optimization in the development environment, but this would not be possible in your current implementation because of the way middlewares are currently implemented.</p>
<p>Of course, you have more freedom when you do not restrict middlewares to be composed in a method very similar to function composition (Which is what Plug does; plug modules are basically functions with an optional prior initialization step).</p>
<p>I think the idea to model client&lt;-&gt;server communication as message-passing is a really smart one, but maybe the middlewares can work with that without having to become macro-heavy creatures. Writing middlewares as modules that contain some pattern-matches for the <code>handle_request</code> calls that might decide between:</p>
<ul>
<li>returning whatever they want and stop the passing-through to the next middleware.</li>
<li>indicating that the request should pass through to the next middleware.</li>
</ul>
<p>Then, secretly the middleware wrapper would call these in turn whenever the ‘passthrough’ result was returned. And maybe it would even be possible to optionally use some AST remolding to make it faster by transforming it optionally into a large set of function-clauses after all. But that would make the middleware modules themselves a lot easier to read and maintain.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="78736" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/raxx-interface-for-http-webservers-frameworks-and-clients-1-0-now-released/9380/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-78736" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="78736"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #17"></div>
  </section>
</div>
    <div class="postbit" id="78738" data-post-id="78738">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Crowdhailer" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Crowdhailer/120/2438_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Crowdhailer
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Raxx</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I am certainly interested in exploring solutions like this. It is something that has come up several times in the slack channel. For the moment I am exploring just not using middleware.</p>
<p>Instead of</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">use Raxx.Session

# later
Raxx.get_session(request)
</code></pre>
<p>I have something that just extracts the session when asked</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">Raxx.Session.extract(request)
</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="78738" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/raxx-interface-for-http-webservers-frameworks-and-clients-1-0-now-released/9380/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-78738" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="78738"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #18"></div>
  </section>
</div>
    <div class="postbit" id="78739" data-post-id="78739">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Qqwy" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Qqwy/120/1349_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Qqwy
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>TypeCheck Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>So you’d explicitly add those statements to your server?</p>
<p>Interesting idea. Is it abstractable? <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="78739" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/raxx-interface-for-http-webservers-frameworks-and-clients-1-0-now-released/9380/20">Post #19</a>
	                </div>
	            </div>
              <div id="likers-container-78739" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="78739"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #19"></div>
  </section>
</div>
    <div class="postbit" id="78741" data-post-id="78741">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Crowdhailer" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Crowdhailer/120/2438_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Crowdhailer
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Raxx</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="Qqwy" data-post="20" data-topic="9380">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/qqwy/48/1349_2.png" class="avatar"> Qqwy:</div>
<blockquote>
<p>Interesting idea. Is it abstractable?</p>
</blockquote>
</aside>
<p>Not sure quite what you mean. So far it’s not been to bad because in many cases middleware is a layer of indirection. replacing the two or three things that would have been sensible middleware admittedly costs a few lines but it is ludicrously explicit, easy to understand and test.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="78741" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/raxx-interface-for-http-webservers-frameworks-and-clients-1-0-now-released/9380/21">Post #20</a>
	                </div>
	            </div>
              <div id="likers-container-78741" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="78741"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #20"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/9380/load_more?page=3">Load more posts (34 remaining)</a>
</div></template></turbo-stream>