Awesome Elixir
by h4cc · h4cc/awesome-elixir
Awesome Elixir and Erlang libraries, resources and shiny things.
BBlockingQueue is a simple queue implemented as a GenServer. It has a fixed maximum length established when it is created.
CElixir implementation of CLOPE: A Fast and Effective Clustering Algorithm for Transactional Data.
CClosure Table for Elixir - a simple solution for storing and manipulating complex hierarchies. It provides in-memory and Ecto adapters.
CElixir library to generate combinations and permutations from Enumerable collection.
CAn Elixir implementation of the CONREC algorithm for topographic or isochrone maps.
CCollision-resistant ids optimized for horizontal scaling and sequential lookup performance, written in Elixir.
DPackage providing functionality similar to Python's Pandas or R's data.frame().
DA collection of protocols, implementations and wrappers to work with data structures.
EFinite state machine pattern implemented on Elixir and adopted for Ecto.
EA latency / fault tolerance library to help isolate your applications from an uncertain world of slow or failed services.
EAn Elixir library for generating struct constructors that handle external data with ease.
EExMatrix is a small library for working with matrices, originally developed for testing matrix multiplication in parallel.
IIsaac is an elixir module for ISAAC: a fast cryptographic random number generator.
MA state machine library for structs in general, it integrates with Phoenix out of the box.
MCoerce maps into structs. This is helpful e.g. when you interface a REST API and want to create a struct from the response.
MA blazing fast matrix library for Elixir/Erlang with C implementation using CBLAS.
MElixir library extending Enum.minby/2, Enum.maxby/2 and Enum.minmaxby/2 to return a list of results instead of just one.
NA navigation tree representation with helpers to generate HTML out of it.
PElixir library providing some handy parallel processing (execution) facilities that support configuring number of workers and timeout.
PParallel Execute (Parex) is an Elixir module for executing multiple (slow) processes in parallel.
QWraps :queue, with improved API and Inspect, Collectable and Enumerable protocol implementations.
RAdds Rational Numbers and allows them to be used in common arithmetic operations. Also supports conversion between Floats and Rational Numbers.
RImplementation of the Rendezvous or Highest Random Weight (HRW) hashing algorithm in Elixir.
RElixir implementation of ROCK: A Robust Clustering Algorithm for Categorical Attributes.
Sstream count distinct element estimation using the "space saving" algorithm.
CA web-based document reader that connects to your cloud storage accounts using Phoenix/LiveView.
CConsolex is a tool that allows you to attach a web based console to any mix project.
EA “mess manager” developed in Elixir and provides a simple API to manage & document your stuff. (Docs).
HA webhook receiver/inspector app, made using Phoenix and LiveView, it's basically a simplified version of webhook.site.
A self-maintained database of your updated server which tells you which one needs to be updated.
MMedical Examination - application for register health check callbacks and represent their state via HTTP.
PThe Good Old game built with Elixir, Phoenix Framework, React and Redux.
PDeploys your favorite open source applications like airflow and airbyte in your own cloud account with just two commands. Written in Elixir and Phoenix Framework for server side, and React for frontend.
RA real-time application for conducting Agile retrospectives at remoteretro.org written in Elixir/Phoenix/React.
SOnline estimation tool for Agile teams, written using Elixir Lang, Phoenix Framework and React.
SAn umbrella project to search startup jobs scraped from websites written in Elixir/Phoenix and React/Redux.
UWebsite with handy day-to-day utils: to do list, URL shortener, code bin and pie chart. Written in Elixir using Phoenix Framework.
WFrom Idea to Execution - Manage your trading operation across a globally distributed cluster.
AAI and LLM toolkit for Ash applications. MCP server, MCP dev tools, vector embeddings, chat interfaces, and more.
GAn extensible Generative AI Completion API Wrapper with basic chat completion with tool use support provided for Gemini, Anthropic, OpenAI, and Mistral models. (Docs).
JAutonomous agent framework for Elixir. Built for distributed, autonomous behavior and dynamic workflows.
MA CLI tool to transpile trained classic ML models into a native Elixir code with zero dependencies.
Runhyve is complete virtual machines manager for bhyve on FreeBSD. It's written in Elixir and uses Phoenix framework.
AA simple configurable identity/password authentication module (Compatible with Ecto/Phoenix).
CCoherence is a full featured, configurable authentication system for Phoenix. (Docs).
EThe simplest way to add Google OAuth authentication ("Sign in with Google") to your Elixir/Phoenix app.
EAWS Managed Streaming for Apache Kafka (MSK) IAM Authentication plugin for Broadway Kafka.
GAn extension to Guardian that tracks tokens in your application's database to prevent playback. (Docs).
PSimple passwordless login or 2-factor / multi-factor authentication for Elixir.
PClient SSL Authentication Plugs for Phoenix and other Plug-based apps.
CA simple authorization library that provides a friendly interface using declarative permission rules.
CAn authorization library for Elixir applications that restricts what resources the current user is allowed to access. (Docs).
SMiddleware based authentication and authorization for Absinthe GraphQL powered by Bodyguard.
TDatabase based authorization (ACL), with custom DSL rules for requiring needed permissions. (Docs).
BElixir package that applies a function to each document in a BSON file and has a low memory consumption.
CConnection behaviour for connection processes. The API is superset of the GenServer API.
Bring Elixir into your company, with real-life strategies from the people who built Elixir and use it successfully at scale. This book has all the information you need to take your application from concept to production (2017).
ADive into Elixir's world of concurrency and processes with this interactive Livebook.
Upgrade your web API to GraphQL, leveraging its flexible queries to empower your users, and its declarative structure to simplify your code (2017).
This book is a set of recipes grouped by topic by Paulo A Pereira (2015).
(Portuguese) The book provides introduction to functional and concurrent programming with Elixir by Tiago Davi (2014).
A brief intro to the language followed by a more detailed look at building production-ready systems in Elixir by Saša Jurić (2015).
Revised and updated for Elixir 1.7, Elixir in Action, Second Edition teaches you how to apply Elixir to practical problems associated with scalability, fault tolerance, and high availability (2019).
Fully updated to Elixir 1.14, this authoritative bestseller reveals how Elixir tackles problems of scalability, fault tolerance, and high availability (2023).
(currently in Beta) As the subtitle suggests, this book explores the technologies and skills that support navigating each stage of software delivery with confidence.
Introduction to Erlang and Elixir in the context of functional concepts by Wolfgang Loder (2016).
This book intends to be a little guide about how to be the Erlang medic in a time of war by Fred Hebert (2014).
Open doors to powerful new techniques that will get you thinking about web development in fundamentally new ways (2017).
GPDF, MOBI, and EPUB documents for Elixir's Getting Started tutorial (2016).
Want to learn Elixir & OTP by creating a real-world project? With Hands-on Elixir & OTP: Cryptocurrency trading bot you will gain hands-on experience by working on an interesting software project. We will explore all the key abstractions and essential principles through iterative implementation improvements. (2021).
A gentle introduction to the language, with lots of code examples and exercises by Simon St. Laurent and J. David Eisenberg (2013).
Don’t board the Elixir train with an imperative mindset! To get the most out of functional languages, you need to think functionally (2017).
Thorough explanation on how to exploit Elixir's metaprogramming capabilities to improve your Elixir coding by Chris McCord (2015).
This book shows how Rails developers can benefit from their existing knowledge to learn Phoenix. By Elvio Vicosa (2017).
builds on your existing web dev skills, teaching you the unique benefits of Phoenix along with just enough Elixir to get the job done. By Geoffrey Lessel (2017).
The goal of this series is to enable you as a Confident Phoenix developer. There are 3 different editions to address varied needs of devs jumping into Phoenix.
The book provides introduction to functional and concurrent programming with Elixir by Dave Thomas (2014).
Definitive guide to build web applications with the Phoenix framework by Chris McCord, José Valim and Bruce Tate (2015).
A description of the Erlang Runtime System ERTS and the virtual Machine BEAM.
A book for learning Elixir and OTP through small to medium-sized projects by Benjamin Tan Wei Hao (2014).
A Phoenix LiveView e-book containing tried and tested recipes for solving common problems.
A collection of exercises to program in Elixir by J. David Eisenberg (2013) (Github Repo).
ELocker is an Elixir wrapper for the locker Erlang library that provides some useful libraries that should make using locker a bit easier.
NA fast, flexible and extensible distributed and local caching library for Elixir.
REasy to use caching for requests in either Phoenix Controllers or GraphQL resolvers. Bypasses JSON encoding/decoding for a large speedup.
CCog is an open chatops platform that gives you a secure, collaborative command line right in your chat window.
Ea library to build Telegram Bots, you can use the low-level methods and models or use the really opinionated framework included. (Docs).
BA self hostable platform for automation/UI driven Kubernetes; built in Elixir and Golang the entire UI is built with Phoenix Live View.
CloudI is for back-end server processing tasks that require soft-realtime transaction.
ECloud Computing library for Erlang (Amazon EC2, S3, SQS, SimpleDB, Mechanical Turk, ELB). (Docs).
FA simple wrapper for the Fleet (CoreOS) API. Can be used with etcd tokens or via direct node URLs.
KKubernetes Elixir client with CRD support, multi-cluster support, pluggable auth, and configurable middleware.
SSideTask is an alternative to Task.Supervisor using Basho's sidejob library with parallelism and capacity limiting.
SAutomatic Erlang cluster formation, messaging and management for Elixir/Erlang applications. Integrated with Kubernetes.
CA static code analysis tool with a focus on code consistency and teaching Elixir. (Docs).
A visual tool to help developers understand Elixir recompilation in their projects. (Code).
EOne task to efficiently run all code analysis & testing tools in an Elixir project.
EHelper package to add interactivity to your command line applications as easy as possible.
FFirex is a library for automatically generating command line interfaces (CLIs) from an elixir module.
Command-line interface for Phoenix Framework like Rails commands.
TPretty print list of Ecto query results / maps in ascii tables (GitHub Markdown/OrgMode).
Mailinglist for Elixir Core development, use "talk" for questions and general discussions.
CHelper module that provides a nice way to read environment configuration at runtime.
CA simple Elixir parser for the same kind of files that Python's configparser library handles.
Eutility package for loading, validating and documenting your app's configuration variables from env, json and jsonc files at runtime and injecting them into your environment.
HRead and inject configuration at runtime, and in release mode with support for multiple providers.
MSupercharge your environment variables in Elixir. Parse and validate with compile time access guarantees, defaults, fallbacks and app pre-boot validations.
SLibrary to manage OS environment variables and application configuration options with ease.
CPassword hashing (argon2, bcrypt, pbkdf2sha512) library for Elixir.(https://hexdocs.pm/comeonin/api-reference.html).
EElixir wrapper for Erlang crypto and publickey modules. Provides sensible defaults for many crypto functions to make them easier to use.(Docs).
PErlang library for generating one time passwords compatible with Google Authenticator.
FA library for performing and validating complex SQL-like filters from a client (e.g. smart filters).
EA toolbar for Phoenix projects to interactively debug code and display useful information about requests: logs, timelines, database queries etc.
EDistributed tracing for Elixir with rate limiting and simple macro-based interface.
OVisualize Elixir & Erlang nodes on the command line, it aims to help developers debug production systems.
QThe Debug module provides a simple helper interface for running Elixir code in the erlang graphical debugger.
ACapistrano like, Configurable, and easy to set up Elixir Deployment Automation Framework.
A1-command setup & deploys to servers, with first-class support for Phoenix apps.
BBottler is a collection of tools that aims to help you generate releases, ship them to your servers, install them there, and get them live on production.
EA project template to get started developing clustered Elixir applications for cloud environments.
GCollection of mix tasks to automatically create a exrm release from git and launch/upgrade it on your server.
A fully-featured PaaS designed for Elixir. Supports clustering, hot upgrades, and remote console/observer. Free to try without a credit card.
PGenerate API Blueprint documentation from controllers and tests in the Phoenix framework.
XGenerate API documentation from tests using Swagger (OpenAPI) or API Blueprint specification.
PAllow you to pass Phoenix environment or controller variables to JavaScript without problems.
AEditor/IDE independent background server to inform about Elixir mix projects.
EA frontend-independent IDE "smartness" server for Elixir. Implements the JSON-based "Language Server Protocol" standard and provides debugger support via VS Code's debugger protocol.
EElixir plugin for SublimeText 3 that provides code completion and linting.
JElixir for IntelliJ IDEA, RubyMine, WebStorm, PhpStorm, PyCharm, AppCode, Android Studio, 0xDBE.
NSyntax highlighting and code completion for Elixir files (.ex, .exs, .eex) in Nova.
VElixir language support and debugger for VS Code, powered by ElixirLS.
BComposable, testable and adapter based email library. Out of the box support for rendering with Phoenix and a plug for previewing sent emails in dev.
EA meta-notification system; Echo checks notification preferences & dispatches notifications.
GA generic Erlang SMTP server and client that can be extended via callback modules.
MLibrary containing Email-related implementations in Elixir: dkim, spf, dmark, mimemail, smtp.
Pop3 client to download email (including attachments) from the inbox via the commandline or Elixir API.
SSmoothie inline styles of your email templates, and generates a plain text version from the HTML.
SCompose, deliver and test your Emails (with attachments!) easily in Elixir with adapters for SMTP, Sendgrid, Mandrill, Mailgun, Postmark and lots others, plus Phoenix integration with mailbox preview.
ESimple error helpers to make errors in your system predictable and easy to render to JSON or in logs.
OElegant error handling with result monads, featuring a simple & powerful with construct and a happy path pipe operator.
Build highly concurrent, monitorable, and extensible applications with a collection of sagas.
ESimple event bus implementation with topic filtering and built-in event store and event watcher.
RReaxive is a reactive event handling library, inspired by Elm and Reactive Extensions.
WProvides convenient and easy-to-use facilities for synchronizing concurrent activities.
EElixir koans is a fun, easy way to get started with the elixir programming language.
EThis package is for interfacing with the Open Notify API to information such as the ISS's current location, crew, and when it will pass over a location.
FAdd social feed functionality to current applications. Exemplify OTP umbrella app, with 3 apps. Thin phoenix controllers.
LThis is the clone of busyloop/lolcat. But it does not support animation and some features of the original.
MWeb application that indexes all popular torrent sites, and saves it to the local database.
PA step-by-step example/tutorial for building a Chat app in Phoenix for complete beginners. Covers testing, docs and deployment. Phoenix 1.5.3.
PA comprehensive example/tutorial showing people how to use Ecto Types to transparently encrypt/decrypt data in a Phoenix 1.4 app.
Pcomplete beginners step-by-step tutorial building a real time counter in Phoenix 1.5.3 and LiveView 0.14.1.
PA complete beginners step-by-step tutorial for building a Todo List from scratch in Phoenix 1.5.3.
RElixir / Phoenix implementation of RealWorld.io backend specs - a Medium clone.
FA feature toggle library using Redis or Ecto for persistence, an ETS cache for speed and PubSub for distributed cache busting. Comes with a management web UI for Phoenix and Plug.
MA feature toggle library using redis or SQL (using Ecto) as a backing service.
AATOM feed builder with a focus on standards compliance, security and extensibility.
Extensible file upload library with support for SFTP, S3 and Filesystem storage.
DDirWalker lazily traverses one or more directory trees, depth first, returning successive file names.
EA framework for doing Hadoop style Map/Reduce operations on collections of files.
EConfigurable mix task to watch file changes and run the corresponding command.
AAuthentication framework that can be used with or outside of phoenix. Similar to Addict but geared towards API usage.(Docs).
BHighly customizable administration panel for Phoenix LiveView applications. (Docs, Demo).
CCommand handling middleware for Command Query Responsibility Segregation (CQRS) applications.
CAn Elixir plug that adds CORS headers to requests and responds to preflight requests (OPTIONS).
DA repository similar to Ecto.Repo that works with REST API requests instead of a database.
EExAdmin is an auto administration package for Elixir and the Phoenix Framework.
FSimple query params filtering for Phoenix framework inspired by Rails hasscope.
HHTTP Router with various macros to assist in developing your application and organizing your code.
MPlug that allows to add version compatibility layers via API Request/Response Gateways.
PUse Ecto to enforce/validate parameters structure, akin to Rails' strong parameters.
PSome helpers for phoenix html (truncate, timeagoinwords, numberwithdelimiter).
PA project that integrates Phoenix with Linguist, providing a plug and view helpers. It looks abandoned: its last commit was on 2015 and its CI runs Elixir 1.0.3.
PToken authentication solution for Phoenix. Useful for APIs or single page apps.
PPhoenix components and helpers for using CAPTCHAs with Cloudflare Turnstile.
PA specification and conveniences for composable modules in between web applications.
PInspired by modcloudflare, this Elixir plug parses Cloudflares CF-Connecting-IP HTTP request header into Plug.Conn's remoteip field.
PVery simple plug which reads X-Forwarded-For or Forwarded header according to RFC7239 and fill conn.remoteip with the root client ip.
PPlug to redirect http requests to https requests behind a reverse proxy.
RRender React.js components in Phoenix views focusing on easy installation and Brunch compatibility.
RResin is a plug that will add a configurable delay to every request that's passing through it, unless run in production.
RPlug application and middleware that serves endpoint returns application's REVISION.
RA support framework for searching, sorting and paginating models in Phoenix, with HTML support.
SA mix task for creating new projects based on templates fetched from a Git-repo.
SHelpers built to work with Scrivener's page struct to easily build HTML output for various CSS frameworks.
SAn authentication framework for Phoenix extending guardian with routing and other basic functionality.
TTorch is a rapid admin generator for Phoenix apps. It uses generators rather than DSLs to ensure that the code remains maintainable.
TAn Elixir plug to support legacy APIs that use a rails-like trailing format.
An open-source UI component library built with Tailwind CSS and compatible with Phoenix/Elixir.
HFull stack Elixir web framework that intelligently transpiles Elixir client-side code to JavaScript.
PA set of HEEX components that makes it easy for Phoenix developers to build beautiful web apps.
PElixir Web Framework targeting full-featured, fault tolerant applications with realtime functionality.
PA REST toolkit for building highly-scalable and fault-tolerant HTTP APIs with Elixir.
BA chess representation written in Erlang using Bitboards, ready for use on game servers.
An Entity-Component-System framework providing a battle ship game as a tutorial (read more on Dockyard blog).
EA distributed Entity-Component-System framework, providing its own example MMORPG server.
RAn implementation of the Mars Rover kata in Elixir transformed in a basic multiplayer game.
VA classical multiplayer snake game with Vim-style keybinding built with Phoenix framework.
DProvide distance and heading calculations via Google distance matrix api.
IFind Russian and Ukraine city by IP address and find country for other country.
SQuery locations for elevation data from the NASA Shuttle Radar Topography Mission.
TA Geometry library for Elixir that calculates spatial relationships between two geometries.
MA library for parsing and extracting data from HTML and XML with CSS or XPath selectors.
MA library to do pipeable transformations on html strings with CSS selectors, e.g. find(), prepend(), append(), replace() etc.
Texas is a powerful abstraction over updating your clients using server-side rendering and server-side Virtual DOM diff/patching.
VElixir client for the Nu HTML Checker. Provides HTML, CSS, and SVG validation.
EElli is a webserver you can run inside your Erlang application to expose an HTTP API.
EAn easy utility for responding with standard HTTP/JSON error payloads in Plug- and Phoenix-based applications.
FAn Elixir library for parsing, constructing, and wildcard-matching URLs. Also available for Ruby and JavaScript.
IA lightweight wrapper around HTTPoison that provides a fluent and composable way to build http requests.
SA base-on Broadway fast high-level web crawling & scraping framework for Elixir.
WThis is an implementation of the WebDriver protocol client. It currently supports PhantomJS, FireFox, ChromeDriver and remote webdriver servers (e.g. Selenium).
WAn exploration into a stand-alone library for Plug applications to easily adopt WebSockets.
EElixir access to hardware I/O interfaces such as GPIO, I2C, and SPI (old version elixirale).
NFramework for building firmware for platforms like Raspberry Pi and BeagleBone Black.
CCloudex is an Elixir library that can upload image files or urls to Cloudinary.
EAn Elixir library to parse images (binaries) and get the dimensions, detected mime-type and overall validity for a set of image formats.
PA pure Erlang library for creating PNG images. It can currently create 8 and 16 bit RGB, RGB with alpha, indexed, grayscale and grayscale with alpha images.
AClient for AppOptics API. Send metrics and tags to AppOptics time series service.
ACollects error and performance data from your Elixir applications and sends it to AppSignal.
NCollects metrics from your Elixir/Phoenix application and sends them to NewRelic.
PElixir-friendly Prometheus.io monitoring system and time series database client.
PPrometheus collector which exports the current state of process metrics including cpu, memory, file descriptor usage and native threads count as well as the process start and up times.
PPrometheus metrics and Grafana dashboards for all of your favorite Elixir libraries.
JImplementation of RFC 6901 which defines a string syntax for identifying a specific value within a JSON document.
JJsonStreamEncoder is a streaming encoder for streaming JSON to an IOish thing in Elixir.
JAn Elixir implementation of the JSON Web Token (JWT) Standards Track (RFC 7519).
PPoison is a new JSON library for Elixir focusing on wicked-fast speed without sacrificing simplicity, completeness, or correctness.
MElixir implementation of an interpreter and REPL for the js-like Monkey programming language.
LLexLuthor is a Lexer in Elixir which uses macros to generate a reusable lexers.
GA Logger backend that will generate Graylog Extended Log Format (GELF) messages.
LA backend for the Elixir Logger that will send logs to the Logstash UDP input.
LEasily parsable, one-line logging for Phoenix and Plug applications, inspired by Lograge.
MLog custom app metrics to stdout for use by Librato and other downstream processors.
MMStore is a experimental metric store build in erlang, the primary functions are open, new, get and put.
QA simple plug to suppress health check logging (e.g.: when using Kubernetes).
YA logger backend that will post messages to YouTrack (an issue tracker made by JetBrains).
AAnaphora is the anaphoric macro collection for Elixir. An anaphoric macro is one that deliberately captures a variable (typically it) from forms supplied to the macro.
ASimple convention and DSL for transformation of elixir functions to an API for later documentation and or validation.
CCrudry is an elixir library for DRYing CRUD of Phoenix Contexts and Absinthe Resolvers.
KMacros to create functions with syntax based keyword parameters with default values.
A
B
P
P
S
A
A
A
B
B
B
C
D
E
E
E
E
F
F
F
F
G
G
H
H
K
L
L
L
L
M
M
N
N
P
R
R
S
S
S
S
T
T
W
Z
C
C
D
E
I
L
M
P
Q
T
T
U
A
B
E
N
S
E
F
S
A
A
B
D
G
G
M
O
O
O
O
P
S
U
U
U
U
Z
B
C
G
S
B
B
B
B
T
E
P
R
R
R
R
R
R
R
R
R
R
R
R
R
S
C
E
N
J
L
M
A
E
E
G
H
K
S
Y
B
A
D
E
G
I
K
K
K
N
S
V
B
D
E
I
E
G
O
O
P
P
R
S
T
D
F
F
S
A
C
C
E
E
N
R
R
P
T
V
B
C
C
C
C
C
E
E
G
J
M
M
O
Q
T
B
B
E
E
E
E
G
I
R
B
E
E
E
B
E
H
M
A
J
E
A
A
A
E
M
N
N
P
V
V
V
G
M
M
M
R
E
H
S
G
B
C
C
H
K
O
P
R
S
W
C
F
F
F
E
F
F
I
L
R
S
W
A
B
C
E
E
G
K
L
M
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
R
R
S
S
W
E
K
R
R
T
S
M
R
G
G
G
G
G
G
I
P
W
F
M
R
C
E
F
G
H
L
M
M
M
N
P
S
T
T
U
U
Y
A
B
C
E
G
I
I
M
T
T
E
E
S
T
W
E
J
J
J
J
E
L
B
E
J
L
L
R
R
T
B
M