Listen "128: Speedy like a Bandit"
Episode Synopsis
The Phoenix 1.7 announcement blog post mentioned the ability to swap out Cowboy for another webserver like Bandit. We talked with Mat Trudel to learn more about his pure-Elixir webserver and find out how it works with Phoenix. We learn Bandit can be up to 5x faster by narrowly focusing on turning a request into a Plug connection and much more!
Show Notes online - http://podcast.thinkingelixir.com/128 (http://podcast.thinkingelixir.com/128)
Elixir Community News
- https://github.com/features/security/ (https://github.com/features/security/) – Github's Dependabot now supports private hex repositories.
- https://twitter.com/sorentwo/status/1595526317436452864 (https://twitter.com/sorentwo/status/1595526317436452864) – Parker Selbert brought this to our attention.
- https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#hex-repository (https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#hex-repository)
- https://hexdocs.pm/mix/Mix.Tasks.Deps.Unlock.html (https://hexdocs.pm/mix/Mix.Tasks.Deps.Unlock.html) – CI tip to check for unused mix lock entries
- https://twitter.com/RudManusachi/status/1597341690653999106 (https://twitter.com/RudManusachi/status/1597341690653999106) – Shared by Rudolf on Twitter
- mix deps.unlock --check-unused
- https://fly.io/phoenix-files/github-actions-for-elixir-ci/ (https://fly.io/phoenix-files/github-actions-for-elixir-ci/) – CI resource for Elixir projects on Github
- https://twitter.com/TechRecHayden/status/1595776257513373699 (https://twitter.com/TechRecHayden/status/1595776257513373699) – Hayden Evans spotted that Zoom is using Erlang in production for their chat platform.
- Mastadon instances to consider if looking for a Twitter alternative...
- https://genserver.social/about (https://genserver.social/about)
- https://hachyderm.io/explore (https://hachyderm.io/explore)
- https://fosstodon.org/ (https://fosstodon.org/)
- https://mastodon.social/explore (https://mastodon.social/explore)
- https://www.lambdadays.org/lambdadays2023 (https://www.lambdadays.org/lambdadays2023) – Lambda Days conference returns as an in-person only event to Kraków on 5-6 June 2023.
Do you have some Elixir news to share? Tell us at @ThinkingElixir (https://twitter.com/ThinkingElixir) or email at [email protected] (mailto:[email protected])
Discussion Resources
- https://phoenixframework.org/blog/phoenix-1.7-released (https://phoenixframework.org/blog/phoenix-1.7-released) – Phoenix 1.7 blog post described at the end - “Alternative Webserver Support”
- https://github.com/mtrudel/bandit (https://github.com/mtrudel/bandit) – “Bandit is a pure Elixir HTTP server for Plug & WebSock applications”
- https://github.com/mtrudel/thousand_island (https://github.com/mtrudel/thousand_island) – “Thousand Island is a pure Elixir socket server, powering the layer underneath Bandit”
- https://ninenines.eu/docs/en/cowboy/2.9/guide/ (https://ninenines.eu/docs/en/cowboy/2.9/guide/) – Cowboy docs
- https://www.pagerduty.com/ (https://www.pagerduty.com/)
- https://github.com/ninenines/cowlib (https://github.com/ninenines/cowlib)
- https://www.youtube.com/watch?v=ZLjWyanLHuk (https://www.youtube.com/watch?v=ZLjWyanLHuk)
- https://github.com/crossbario/autobahn-testsuite (https://github.com/crossbario/autobahn-testsuite)
- https://en.wikipedia.org/wiki/Cyclicredundancycheck (https://en.wikipedia.org/wiki/Cyclic_redundancy_check)
- https://en.wikipedia.org/wiki/Cyclicredundancycheck#CRC-32_algorithm (https://en.wikipedia.org/wiki/Cyclic_redundancy_check#CRC-32_algorithm)
- https://github.com/phoenixframework/websock (https://github.com/phoenixframework/websock)
- https://hexdocs.pm/plug/Plug.Conn.html#upgrade_adapter/3 (https://hexdocs.pm/plug/Plug.Conn.html#upgrade_adapter/3)
- https://podcast.thinkingelixir.com/57 (https://podcast.thinkingelixir.com/57) – Scaling Live Chat with Cade Ward episode
- https://en.wikipedia.org/wiki/HTTP/3 (https://en.wikipedia.org/wiki/HTTP/3)
- https://github.com/mtrudel/talks/blob/main/2022-05-EMPEX-MTX-a-funny-thing-happened-on-the-way-to-the-phoenix.pdf (https://github.com/mtrudel/talks/blob/main/2022-05-EMPEX-MTX-a-funny-thing-happened-on-the-way-to-the-phoenix.pdf) – 2022 EMPEX presentation slides
- https://github.com/mtrudel/talks/blob/main/2021-10-ElixirConf-bandit-on-the-loose.pdf (https://github.com/mtrudel/talks/blob/main/2021-10-ElixirConf-bandit-on-the-loose.pdf) – 2021 Elixir Conf presentation slides
Guest Information
- https://twitter.com/mattrudel (https://twitter.com/mattrudel) – on Twitter
- https://github.com/mtrudel/ (https://github.com/mtrudel/) – on Github
- https://mat.geeky.net (https://mat.geeky.net) – Blog
Find us online
- Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir)
- Email the show - [email protected] (mailto:[email protected])
- Mark Ericksen - @brainlid (https://twitter.com/brainlid)
- David Bernheisel - @bernheisel (https://twitter.com/bernheisel)
- Cade Ward - @cadebward (https://twitter.com/cadebward)
Show Notes online - http://podcast.thinkingelixir.com/128 (http://podcast.thinkingelixir.com/128)
Elixir Community News
- https://github.com/features/security/ (https://github.com/features/security/) – Github's Dependabot now supports private hex repositories.
- https://twitter.com/sorentwo/status/1595526317436452864 (https://twitter.com/sorentwo/status/1595526317436452864) – Parker Selbert brought this to our attention.
- https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#hex-repository (https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#hex-repository)
- https://hexdocs.pm/mix/Mix.Tasks.Deps.Unlock.html (https://hexdocs.pm/mix/Mix.Tasks.Deps.Unlock.html) – CI tip to check for unused mix lock entries
- https://twitter.com/RudManusachi/status/1597341690653999106 (https://twitter.com/RudManusachi/status/1597341690653999106) – Shared by Rudolf on Twitter
- mix deps.unlock --check-unused
- https://fly.io/phoenix-files/github-actions-for-elixir-ci/ (https://fly.io/phoenix-files/github-actions-for-elixir-ci/) – CI resource for Elixir projects on Github
- https://twitter.com/TechRecHayden/status/1595776257513373699 (https://twitter.com/TechRecHayden/status/1595776257513373699) – Hayden Evans spotted that Zoom is using Erlang in production for their chat platform.
- Mastadon instances to consider if looking for a Twitter alternative...
- https://genserver.social/about (https://genserver.social/about)
- https://hachyderm.io/explore (https://hachyderm.io/explore)
- https://fosstodon.org/ (https://fosstodon.org/)
- https://mastodon.social/explore (https://mastodon.social/explore)
- https://www.lambdadays.org/lambdadays2023 (https://www.lambdadays.org/lambdadays2023) – Lambda Days conference returns as an in-person only event to Kraków on 5-6 June 2023.
Do you have some Elixir news to share? Tell us at @ThinkingElixir (https://twitter.com/ThinkingElixir) or email at [email protected] (mailto:[email protected])
Discussion Resources
- https://phoenixframework.org/blog/phoenix-1.7-released (https://phoenixframework.org/blog/phoenix-1.7-released) – Phoenix 1.7 blog post described at the end - “Alternative Webserver Support”
- https://github.com/mtrudel/bandit (https://github.com/mtrudel/bandit) – “Bandit is a pure Elixir HTTP server for Plug & WebSock applications”
- https://github.com/mtrudel/thousand_island (https://github.com/mtrudel/thousand_island) – “Thousand Island is a pure Elixir socket server, powering the layer underneath Bandit”
- https://ninenines.eu/docs/en/cowboy/2.9/guide/ (https://ninenines.eu/docs/en/cowboy/2.9/guide/) – Cowboy docs
- https://www.pagerduty.com/ (https://www.pagerduty.com/)
- https://github.com/ninenines/cowlib (https://github.com/ninenines/cowlib)
- https://www.youtube.com/watch?v=ZLjWyanLHuk (https://www.youtube.com/watch?v=ZLjWyanLHuk)
- https://github.com/crossbario/autobahn-testsuite (https://github.com/crossbario/autobahn-testsuite)
- https://en.wikipedia.org/wiki/Cyclicredundancycheck (https://en.wikipedia.org/wiki/Cyclic_redundancy_check)
- https://en.wikipedia.org/wiki/Cyclicredundancycheck#CRC-32_algorithm (https://en.wikipedia.org/wiki/Cyclic_redundancy_check#CRC-32_algorithm)
- https://github.com/phoenixframework/websock (https://github.com/phoenixframework/websock)
- https://hexdocs.pm/plug/Plug.Conn.html#upgrade_adapter/3 (https://hexdocs.pm/plug/Plug.Conn.html#upgrade_adapter/3)
- https://podcast.thinkingelixir.com/57 (https://podcast.thinkingelixir.com/57) – Scaling Live Chat with Cade Ward episode
- https://en.wikipedia.org/wiki/HTTP/3 (https://en.wikipedia.org/wiki/HTTP/3)
- https://github.com/mtrudel/talks/blob/main/2022-05-EMPEX-MTX-a-funny-thing-happened-on-the-way-to-the-phoenix.pdf (https://github.com/mtrudel/talks/blob/main/2022-05-EMPEX-MTX-a-funny-thing-happened-on-the-way-to-the-phoenix.pdf) – 2022 EMPEX presentation slides
- https://github.com/mtrudel/talks/blob/main/2021-10-ElixirConf-bandit-on-the-loose.pdf (https://github.com/mtrudel/talks/blob/main/2021-10-ElixirConf-bandit-on-the-loose.pdf) – 2021 Elixir Conf presentation slides
Guest Information
- https://twitter.com/mattrudel (https://twitter.com/mattrudel) – on Twitter
- https://github.com/mtrudel/ (https://github.com/mtrudel/) – on Github
- https://mat.geeky.net (https://mat.geeky.net) – Blog
Find us online
- Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir)
- Email the show - [email protected] (mailto:[email protected])
- Mark Ericksen - @brainlid (https://twitter.com/brainlid)
- David Bernheisel - @bernheisel (https://twitter.com/bernheisel)
- Cade Ward - @cadebward (https://twitter.com/cadebward)
More episodes of the podcast Thinking Elixir Podcast
283: Erlang Turns 27 and React at Risk
16/12/2025
282: Type Systems and View Transitions
09/12/2025
281: Planning for the Unexpected
02/12/2025
280: Dark Matter Developers
25/11/2025
279: Hot Code Upgrades and Hotter AI Takes
18/11/2025
278: WAL-ing Through Database Changes
11/11/2025
277: Searching Across the Hexiverse
04/11/2025
276: Elixir v1.19 Types and Speed
28/10/2025
275: From Slop to Success?
21/10/2025
274: Protocols, Permissions, and Performance
14/10/2025
ZARZA We are Zarza, the prestigious firm behind major projects in information technology.