How to work with HTTP/2 in Elixir?

Peter Saxton created a server, that supports only HTTP/2 built entirely in Elixir
28 August 2017   2878

What is HTTP/2?

HTTP/2 is a major revision to the HTTP protocol. This latest version aims to maintain the semantics of HTTP while improving performance. However several of these improvements make upgrading existing servers challenging.

The working group of HTTP/2 had several goals:

  • Create a negotiation mechanism that allows clients and servers to elect to use HTTP 1.1, 2.0, or potentially other non-HTTP protocols.
  • Maintain high-level compatibility with HTTP 1.1 (for example with methods, status codes, URIs, and most header fields).
  • Decrease latency to improve page load speed in web browsers by considering:
    • Data compression of HTTP headers
    • HTTP/2 Server Push
    • Pipelining of requests
    • Fixing the head-of-line blocking problem in HTTP 1.x
    • Multiplexing multiple requests over a single TCP connection
  • Support common existing use cases of HTTP, such as desktop web browsers, mobile web browsers, web APIs, web servers at various scales, proxy servers, reverse proxy servers, firewalls, and content delivery networks.

How to work with HTTP/2 in Elixir?

Peter Saxton has built a server to take advantange of all the new features of HTTP/2, it's called Ace. The Ace server supports only HTTP/2 built entirely in Elixir.

In this talk, Peter will provide a summary of the features of HTTP/2. He will then explain how Ace makes these features available to application developers and show us what is needed to increase adoption of HTTP/2 in the Elixir Ecosystem.

Elixir v1.7.0-rc.0 Released

Development team ask community to try out new release 
17 July 2018   1906

Elixir team rolled out zero release candidate for version 1.7.0.

Hi everyone,

We have just released v1.7.0-rc.0.

Please give it a try! You can either compile the v1.7 branch from source OR use the precompiled files, as described in our install page 11.

Note that you will need {:ex_doc, "~> 0.19-rc"}if you want to generate docs using the release candidate.

Happy coding!


Creator, Elixir

Currently Elixir supports two metadata keys: :deprecated and :since. Other keys will be added in the future. 

To access the new documentation, developers should use Code.fetch_docs/1. The old documentation format is no longer available and the old Code.get_docs/1 function will return nil accordingly.

Tools like IEx and ExDoc have been updated to leverage the new format and show relevant metadata to users

Learn more at GitHub