Az Elixir kód a BEAM virtuális gépen fut. A BEAM az Erlang futásidejű rendszerének a része. Mivel az Elixir az Erlang ihlette, és közös vele a futtatókörnyezete, nagyszerű interoperabilitást nyújt az Erlang könyvtárakkal. Ez azt jelenti, hogy az Elixir-fejlesztők az Elixir-kódjukból is használhatnak Erlang könyvtárakat. Sőt, az Elixir közösségben nem szorgalmazzák, hogy olyan funkciókra írjunk Elixir könyvtárat, amelyeket már biztosítanak Erlang könyvtárak.
Emiatt bizonyos funkciók, például a matematikai műveletek vagy az időzítőfunkciók, csak Erlangon keresztül érhetők el az Elixirből.
Az Elixir és az Erlang szoros kapcsolata miatt, ha gyakorlott Elixir-fejlesztő szeretnél lenni, érdemes időt szánnod arra, hogy megtanuld az Erlang alapszintaxisát.
Az Erlang szabványos könyvtára külön lépések nélkül használható az Elixir-kódunkban.
Az Erlang függvényeit ugyanúgy hívhatjuk meg, ahogy az Elixir függvényeit, egy apró különbséggel. Az Erlang modulnevei snake_case atomok. Például az Erlang math modul pi/0 függvényének meghívásához ezt írnánk:
:math.pi()
# => 3.141592653589793
A leggyakrabban használt Erlang modulok olyan funkcionalitást nyújtanak, ami az Elixir szabványos könyvtárából hiányzik. Ezek a következők:
timer modul, amely olyan függvényeket biztosít, mint a sleep/1, a send_after/2 és a send_interval/2.rand modul, amely olyan függvényeket biztosít, mint az uniform/0, a normal/0 és a seed/2.:io_lib.format/2, amely C-stílusú stringformázást tesz lehetővé (vezérlősorozatok használatával).math modul, amely matematikai függvényeket biztosít, mint például a sin/1, a cos/1, a log2/1, a log10/1, a pow/2 és még sok más.queue modul, amely egy sor adatszerkezetet biztosít.crypto modul, amely kriptográfiai függvényeket biztosít.zip modul, amely zip archívumokkal való munkához biztosít függvényeket.calendar modul, amely dátumokkal és idővel való munkához biztosít függvényeket, mint például az iso_week_number/1. Ha egy Date, Time vagy NaiveDateTime structot szeretnél átadni valamelyik Erlang függvénynek, előbb át kell alakítanod Erlang-formátumra a megfelelő modul to_erl függvényével.Ha szeretnéd felfedezni az Erlang szabványos könyvtárát, böngészd át a STDLIB referenciakézikönyvet.
Az Elixir Erlang könyvtárakkal való interoperabilitása nem korlátozódik az Erlang szabványos könyvtárára. Bármelyik Erlang könyvtár használható az Elixir-kódban.