Код Elixir виконується на віртуальній машині BEAM. BEAM входить до складу системи виконання Erlang. Elixir натхненний Erlang і поділяє з ним середовище виконання, тому чудово взаємодіє з бібліотеками Erlang. Це означає, що розробники Elixir можуть використовувати бібліотеки Erlang у своєму коді Elixir. Насправді, спільнота Elixir не радить писати бібліотеки Elixir для функціональності, яку вже надають бібліотеки Erlang.
Як наслідок, деяка функціональність, як-от математичні операції чи функції таймерів, доступна в Elixir лише через Erlang.
Цей тісний звʼязок між Elixir і Erlang означає, що для того, щоб стати досвідченим розробником Elixir, варто приділити час вивченню базового синтаксису Erlang.
Стандартна бібліотека Erlang доступна для використання в нашому коді Elixir без жодних додаткових кроків.
Функції Erlang можна викликати так само, як ми викликаємо функції Elixir, з однією невеликою різницею. Назви модулів Erlang - це атоми в snake_case. Наприклад, щоб викликати функцію pi/0 з модуля math в Erlang, ми пишемо:
:math.pi()
# => 3.141592653589793
Найуживаніші модулі Erlang надають функціональність, якої бракує стандартній бібліотеці Elixir. Це:
timer, який надає такі функції, як sleep/1, send_after/2 і send_interval/2.rand, який надає такі функції, як uniform/0, normal/0 і seed/2.:io_lib.format/2 надає форматування рядків тексту (англ. string) у стилі C (за допомогою керівних послідовностей).math, який надає математичні функції, як-от sin/1, cos/1, log2/1, log10/1, pow/2 та інші.queue, який надає структуру даних «черга».crypto, який надає криптографічні функції.zip, який надає функції для роботи з zip-архівами.calendar, який надає функції для роботи з датами й часом, як-от iso_week_number/1. Щоб передати структуру Date, Time або NaiveDateTime в одну з функцій Erlang, її потрібно перетворити на формат Erlang за допомогою функції to_erl з відповідного модуля.Щоб ознайомитися зі стандартною бібліотекою Erlang, зазирнімо до STDLIB Reference Manual.
Взаємодія Elixir із бібліотеками Erlang не обмежується стандартною бібліотекою Erlang. Будь-яку бібліотеку Erlang можна використовувати в коді Elixir.