This is a general introduction to Elixir aimed at a wide audience: from people who are new to both Erlang and Elixir to Erlang veterans who are interested in Elixir's design and philosophy.
In this tutorial I will guide you from a basic TCP echo server to a fully functioning HTTP web-server able to serve static and dynamic content. Currently, this is still very much a WIP (work in progress). Parts 1 & 2 have been finished, Part 3 is in a draft stage.
Preliminary table of contents:
- Building an echo server
- Implementing request handlers
- Intro to HTTP
- Our first web server
- Advanced HTTP techniques
- Introducing OTP
If you find any given part too easy, you may safely skim over the text, take a look at the code and proceed to the next part which describes more advanced material.
Elixir is built on top of the Erlang VM. Most of the system-level concepts that will be explained in this tutorial are taken directly from Erlang: processes, messages, modules, functions. In the text, Erlang will be mentioned every time one of its concepts is explained. Elixir will only be mentioned where an Elixir-specific feature is described.
If you're serious about mastering Elixir, you should also be willing to learn Erlang.