XL
GitHub

The Elixir Ecosystem

The Elixir ecosystem is a collection of resources (e.g., frameworks and libraries) that extend the capabilities of Elixir. Here is an overview of some of the more popular and widely-used projects in the Elixir ecosystem.

Authentication and authorization

Pow

Pow is a robust, modular, and extendable authentication and user management solution for Phoenix and Plug-based apps.

Documentation

Uberauth

Ueberauth is a two-phase authentication framework that provides a clear API - allowing for many strategies to be created and shared within the community.

Documentation

Code Analysis Tools

Credo

A static code analysis tool for the Elixir language with a focus on teaching and code consistency.

Documentation

Dialyzer

A static analysis tool for Erlang and other languages that compile to BEAM bytecode for the Erlang VM.

Documentation

Database Tools

Ecto

Ecto is a database wrapper and query generator for Elixir, providing a unified API for working with different databases.

Documentation

Embedded Software

Nerves

A framework for building embedded software using Elixir, providing tools and libraries for hardware interfacing.

Documentation

Internationalization and Localization

Elixir CLDR

A library for working with Unicode Common Locale Data Repository (CLDR) in Elixir applications.

Documentation

GetText

GetText is an internationalization and localization library for Elixir, allowing easy translation and formatting of messages.

Documentation

Machine Learning

Bumblebee

Pre-trained Neural Network models in Axon and integration with Hugging Face models

Documentation

Explorer

Explorer brings series (one-dimensional) and dataframes (two-dimensional) for fast data exploration to Elixir.

Documentation

Nx

A multi-dimensional tensors library with multi-staged compilation to the CPU/GPU.

Documentation

Scholar

Traditional machine learning tools built on top of Nx. Scholar implements several algorithms for classification, regression, clustering, dimensionality reduction, metrics, and preprocessing.

Documentation

Native Applications

LiveView Native

LiveView Native allows you to build LiveView apps that have a front-end for multiple platforms. Use your LiveView back-end to create a web, mobile, wearable and/or desktop UI.

Documentation

Scenic

Scenic is an application framework written directly on the Elixir/Erlang/OTP stack. With it, you can build client-side applications that operate identically across all supported operating systems, including MacOS, Ubuntu, Nerves/Linux, and more.

Documentation

Testing

ExUnit

The built-in testing framework for Elixir, providing a simple and powerful API for writing and running tests.

Documentation

Mox

Mox is a library for defining concurrent mocks in Elixir.

Documentation

Wallaby

A browser automation tool for Elixir, allowing developers to simulate realistic user interactions.

Documentation

The Web

Absinthe

A GraphQL toolkit for Elixir, an implementation of the GraphQL specification built to suit the language’s capabilities and idiomatic style

Documentation

Hologram

Hologram is a full stack isomorphic web framework that can be used on top of the Phoenix Framework.

Documentation

LiveState

The goal of LiveState is to make highly interactive web applications easier to build. Currently, in most such applications, clients send requests and receive responses from and to a server API. This essentially results in two applications, with state being managed in both in an ad hoc way.

LiveState uses a different approach. Clients dispatch events, which are sent to the server to be handled, and receive updates from the server any time application state changes. This allows state to have a single source of truth, and greatly reduces client code complexity. It also works equally well for applications where updates to state can occur independently from a user initiated, client side event (think “real time” applications such as chat, etc).

Documentation

Phoenix Framework

Phoenix is a popular web development framework for building web applications with Elixir. Server-side rendering and real-time communication, are some of its key features. Has LiveView built-in, allowing developers to build interactive, real-time applications while writing little to no JavaScript.

Documentation

Phoenix LiveView

LiveView is a library that enables rich, real-time user experiences with server-rendered HTML. It allows developers to build interactive, real-time applications while writing little to no JavaScript.

Documentation

Plug

A specification and composable modules for web application components, enabling HTTP request handling.

Documentation

SurfaceUI

A server-side rendering component library that allows developers to build rich interactive user-interfaces, writing minimal custom Javascript.

Documentation

Other Tools

Ash Framework

A declarative, resource-oriented application development framework for Elixir.

Documentation

ExDoc

A tool for generating HTML documentation for Elixir projects, transforming documentation into readable web pages.

Documentation

Exq

An Elixir library for job processing, utilizing Redis for managing job queues and worker processes.

Documentation

LiveBook

A collaborative and interactive code notebook for Elixir, providing a rich environment for exploring and sharing code.

Documentation

Oban

A robust job processing library for Elixir, providing background job processing with reliability and concurrency.

Documentation

Telemetry

A lightweight library for dynamic dispatching of events, with a focus on metrics and instrumentation.

Documentation