Xirsys Releases XTurn — The Open Source TURN Server in Elixir

Jahred Love
2 min readNov 12, 2018

--

In the years since Xirsys first launched, a number of experimental projects have arisen in-house as helpful tools, research sandboxes or simply precursors to commercial projects for customers. One of these projects is the XTurn server.

Written in Elixir, the XTurn server was first created as an experiment to facilitate WebRTC / PSTN interoperability. Elixir is a popular language in the office and Erlang, its underlying platform, even more so. These technologies are perfect playgrounds for building streaming media servers and empowers our engineers to do interesting things very quickly.

The XTurn server has never been used in a production environment at Xirsys, but it has certainly helped many projects that have. As such, we are open sourcing the code for a streamlined implementation of this server in the hope that it will benefit the development community.

XTurn is a fully capable TURN server which runs at an impressive speed. Our recent benchmarks clocked it running faster than Google’s own test servers even when running on a cheap $5 commercial VM. While not perfect, it does provide an impressive list of features while being very simple and easy to extend. Features include:

  • TCP, UDP, TLS and DTLS support
  • Full TURN RFC5766 support (except rotating nonce)
  • Full STUN RFC3489 support
  • Simple user / pass storage with Web API interface
  • Channel Binding / Data support
  • WebRTC Data Channels support

We are also working with the team at the fantastic Membrane Project to bring additional audio / video features; more of which will be announced in the near future.

We hope this project proves valuable and welcome all feedback, contributions and support questions to be sent to us at experts@xirsys.com.

--

--