Your first time on this page? Allow me to give some explanations.
Awesome Elixir
A curated list of amazingly awesome Elixir and Erlang libraries, resources and shiny things. Updates:
Here you can see meta information about this topic like the time we last updated this page, the original creator of the awesome list and a link to the original GitHub repository.
Thank you h4cc & contributors
View Topic on GitHub:
h4cc/awesome-elixir
Search for resources by name or description.
Simply type in what you are looking for and the results will be filtered on the fly.
Further filter the resources on this page by type (repository/other resource), number of stars on GitHub and time of last commit in months.
Actors
💠 BPE: Business Process Engine
Dalmatiner flow processing library.
Helpers for simpler implementation of GenServer based processes
Exos is a simple Port Wrapper : a GenServer which forwards cast and call to a linked Port.
Flow-Based Programming framework for Elixir
Elixir GenServer used to monitor a GenEvent event handler
create a pool based on a hash ring
A hunky Erlang worker pool factory
An OTP Process Pool Application
Sojourn-time based active queue management library
Load control in BEAM processes.
Algorithms and Data structures
An Elixir wrapper library for Erlang's array
A configurable constraint solver
Elixir implementation of bidirectional map and multimap
Bitmap implementation in Elixir using binaries and integers. Fast space efficient data structure for lookups
A blocking queue written in Elixir.
A pure Elixir implementation of Scalable Bloom Filters
Elixir implementation of CLOPE: A Fast and Effective Clustering Algorithm for Transactional Data
A simple combinatorics library providing combination and permutation.
buffer a large set of counters and flush periodically
Cuckoo Filters in Elixir
Collision-resistant ids, in Elixir
Package providing functionality similar to Python's Pandas or R's data.frame()
Datastructures for Elixir.
DefMemo - Ryuk's little puppy! Bring apples.
Deque implementations in elixir
A* graph pathfinding in pure Elixir
Tree structure & hierarchy for ecto models
State machine pattern for Ecto
A latency / fault tolerance library to help isolate your applications from an uncertain world of slow or failed services.
Turn data into functions! A simple and functional machine learning library written in elixir.
Implementations of popular data structures and algorithms
An Elixir library for generating struct constructors that handle external data with ease.
Simple elixir library to define a static FSM.
kademlia
Elixir library implementing a parallel matrix multiplication algorithm and other utilities for working with matrices. Used for benchmarking computationally intensive concurrent code.
Erlang nif for xor_filter. 'Faster and Smaller Than Bloom and Cuckoo Filters'.
Thin layer on top of Cryptex for more easily encrypting/decrypting, signing/verifying data in elixir
Computational parallel flows on top of GenStage
Pure Elixir implementation of Fowler–Noll–Vo hash functions
Finite State Machine data structure
A Circuit Breaker for Erlang
Elixir wrapper around OTP's gen_fsm
An Elixir library for performing 2D and 3D mathematics.
A consistent hash ring implemention for Elixir
Fast HyperLogLog implementation for Elixir/Erlang
Elixir Indifferent access on maps/lists/tuples with custom key transforms.
Jump consistent hash implementation in Elixir (without NIFs)
Erlang 2-way map
Elixir implementation of a binary Galois LFSR
A CRDT library with δ-CRDT support.
Luhn algorithm in Elixir
LZ4 bindings for Erlang
State machine thin layer for structs (+ GUI for Phoenix apps)
Mason uses superpowers to coerce maps into structs. This is helpful e.g. when you interface a REST API and want to create a struct from the response.
A blazing fast matrix library for Elixir/Erlang with C implementation using CBLAS.
Merkle Tree implementation in pure Elixir
Extension of Enum functions like min_by, max_by, min_max_by, returning a list of results instead of just one.
Metric stream related math functions.
Monads and do-syntax for Elixir
Upgrade your pipelines with monads.
An implementation of the non-cryptographic hash Murmur3
An Elixir implementation of generic n-ary tree data structure
Elixir natural sort implementation for lists of strings.
A navigation tree representation with helpers to generate HTML out of it - depending of userroles
A parallelized stream implementation for Elixir
Elixir library providing some handy parallel processing facilities that supports configuring number of workers and timeout.
An elixir module for parallel execution of functions/processes
Queue data structure for Elixir-lang
Rational number library for Elixir.
Red-black tree implementation for Elixir.
An Elixir presenter package used to transform map structures. "ActiveModel::Serializer for Elixir"
Implementation of the Rendezvous or Highest Random Weight (HRW) hashing algorithm in the Elixir Programming Language
Elixir implementation of ROCK: A Robust Clustering Algorithm for Categorical Attributes
sfmt-erlang: SIMD-oriented Fast Mersenne Twister (SFMT) for Erlang
Elixir implementation of Simhash
BEAM friendly spinlocks for Elixir/Erlang
Sorted Set library for Elixir
stream count distinct element estimation
A playground for data structures in Elixir
An Elixir implementation of the Supermemo 2 algorithm
tf-idf elixir
String metrics and phonetic algorithms for Elixir (e.g. Dice/Sorensen, Hamming, Jaccard, Jaro, Jaro-Winkler, Levenshtein, Metaphone, N-Gram, NYSIIS, Overlap, Ratcliff/Obershelp, Refined NYSIIS, Refined Soundex, Soundex, Weighted Levenshtein)
This software is no longer maintained. For archive/reference use only. -- Tiny Mersenne Twister (TinyMT) for Erlang
Erlang Trie Implementation
Monads and other dark magic for Elixir
Variadic aritity tree with a zipper for Elixir!
Applications
🔎 CaptainFact - API. The one that serves and process all the data for https://captainfact.io
💬 CHAT: Messaging Protocol — https://chat.n2o.dev
Consolex is a tool that allows you to attach a web based console to any mix project
Elixir app to serve Dragonfly images
(Not maintaining) A Slack-like app by Elixir, Phoenix & React(redux)
Exon is a “mess manager” developed in Elixir and provides a simple API to manage & document your stuff.
Digital goods shop & blog created using Elixir (Phoenix framework)
Open source API gateway with integrated cache and data transformations.
Cryptocurrency trading platform
Medical Examination - application for register health check callbacks and represent their state via HTTP.
A simple web server written in elixir to stack images
A multi-protocol network services monitor written in Elixir using Poolboy.
The Good Old game, built with Elixir, Phoenix, React and Redux
Toggl tribute done with Elixir, Phoenix Framework, React and Redux.
Trello tribute done in Elixir, Phoenix Framework, React and Redux.
Pusher server implementation compatible with Pusher client libraries.
A simple yet efficient URL shortening service written in Elixir
Free, world-class retrospectives
Online estimation tool for Agile teams.
An app to search startup jobs scraped from websites written in Elixir, Phoenix, React and styled-components.
A composable, real time, market data and trade execution toolkit. Built with Elixir, runs on the Erlang virtual machine
Terminal-based 2048 game written in Elixir
A multiplayer ship game built with Elixir, Phoenix Framework and Phaser.
From Idea to Execution - Manage your trading operation across a globally distributed cluster
A self-maintained database of your updated server which tells you which one needs to be updated.
Artificial Intelligence
An Elixir Evolutive Neural Network framework à la G.Sher
A Naive Bayes machine learning implementation in Elixir.
Audio and Sounds
Erlang PortAudio bindings
Firmata protocol in Elixir
A signal synthesis library
Authentication
A simple, secure, and highly configurable Elixir identity [username | email | id | etc.]/password authentication module to use with Ecto.
Apache/APR Style Password Hashing
AWS Signature Version 4 Signing Library for Elixir
Elixir Plug to easily add HTTP basic authentication to an app
Coherence is a full featured, configurable authentication system for Phoenix
Tools to make Plug, and Phoenix authentication simple and flexible.
👤Minimalist Google OAuth Authentication for Elixir Apps. Tested, Documented & Maintained. Setup in 5 mins. 🚀
A simple github oauth library
Elixir package for Oauth authentication via Google Cloud APIs
Elixir Authentication
Apache httpasswd file reader/writer in Elixir
MojoAuth implementation in Elixir
An Elixir OAuth 2.0 Client Library
A Facebook OAuth2 Provider for Elixir
A GitHub OAuth2 Provider for Elixir
Simple OAuth2 client written for elixir
An OAuth 2.0 client library for elixir.
An OAuth 1.0 for Elixir
A library for simple passwordless authentication
Authentication library for Phoenix, and other Plug-based, web applications
Set of Plugs / Lib to help with SSL Client Auth.
An authentication system generator for Phoenix 1.5 applications.
Robust, modular, and extendable user authentication system
Elixir Plug library to enable SAML 2.0 SP SSO in Phoenix/Plug applications.
[WIP] Another authentication hex for Phoenix.
An Elixir library to sign and verify HTTP requests using AWS Signature V4
An Elixir Authentication System for Plug-based Web Applications
Central Authentication Service strategy for Überauth
Facebook OAuth2 Strategy for Überauth.
Foursquare OAuth2 Strategy for Überauth
GitHub OAuth2 Strategy for Überauth
Google OAuth2 Strategy for Überauth.
A username/password Strategy for Überauth
LINE strategy for Ueberauth
Microsoft Strategy for Überauth
Slack OAuth2 Strategy for Überauth
Twitter Strategy for Überauth
vk.com OAuth2 Strategy for Überauth.
Weibo OAuth2 strategy for Überauth.
An easy to use licensing system, using asymmetric cryptography to generate and validate licenses.
An Ueberauth strategy for using Auth0 to authenticate your users.
Authorization
Rule based authorization for Elixir
Simple authorization conventions for Phoenix apps
Easy permission definitions in Elixir apps!
Elixir authorization and resource-loading library for Plug applications.
Middleware based authorization for Absinthe GraphQL powered by Bodyguard
🛡 Modern elixir ACL/ABAC library for managing granular user abilities and permissions
Behaviours and Interfaces
Connection behaviour for connection processes
An idiomatic Elixir wrapper for gen_statem in OTP 19 (and above).
Simple Elixir wrapper for the Stockfighter API
Benchmarking
Easy and extensible benchmarking in Elixir providing you with lots of statistics!
Microbenchmarking tool for Elixir
A benchmarking tool for Elixir
Bittorrent
A fast, correct, pure-Elixir library for reading and writing Bencoded metainfo (.torrent) files.
an elixir library for dealing with bittorrent tracker requests and responses
encode and decode bittorrent peer wire protocol messages with elixir
BSON
Elixir package that applies a function to each document in a BSON file.
BSON documents in Elixir language
Build Tools
♾️ ACTIVE: Filesystem Activities
Rotor plugin to compile CoffeeScript files
a "compiler" (as in Mix.compilers
) for Elixir that just runs make
futures for elixir/erlang
A modern, scriptable, dependency-based build tool loosely based on Make principles.
Elixir escript library (derived work from elixir)
⚡ MAD: Manage Dependencies
A rebar3 port compiler
Use React template into your Elixir application for server rendering
Rebar3 abnfc plugin
Plugin for compiling ASN.1 modules with Rebar3.
Rebar3 plugin to auto compile and reload on file change.
Compile Diameter .dia files on Erlang Rebar3 projects
A rebar3 plugin to enable the execution of Erlang QuickCheck properties
A plugin to run Elixir ExUnit tests from rebar3 build tool
Rebar3 live plugin
Rebar3 neotoma (Parser Expression Grammar) compiler
rebar3 protobuffs provider using protobuffs from Basho
Run a release with one simple command
Rebar3 yang compiler
Erlang reltool utility functionality application
Sane, simple release creation for Erlang
Automatic recompilation of mix code on file change.
Super-simple build system for Elixir
A sass plugin for elixir projects
Caching
A powerful caching library for Elixir with support for transactions, fallbacks and expirations
ets based key/value cache with row level isolated writes and ttl support
DEPRECATED caching made fun!
Erlang, in-memory distributable cache
Atomic distributed "check and set" for short-lived keys
ETS-based fix-sized LRU cache for elixir
A method caching macro for elixir using CAS on ETS.
In-memory and distributed caching toolkit for Elixir.
A small and user-friendly ETS wrapper for caching in Elixir
Chatting
A Slack bot framework for Elixir; down the rabbit hole!
Basic IRC client for writing bots
Bringing the power of the command line to chat
Telegram Bot API low level API and framework
IRC client adapter for Elixir projects
A simple, clueless bot
Guri - Slackbot command handler powered by Elixir
An Adapter-based Bot Framework for Elixir Applications
[DISCONTINUED] HipChat client library for Elixir
A small, powerful, and modular IRC bot
An Elixir Slack bot! (work in progress)
Cloud Infrastructure and Management
AWS clients for Elixir
The Elixir based Kubernetes Development Framework
An OTP application for auto-discovering services with Consul
AWS APIs library for Erlang (Amazon EC2, S3, SQS, DDB, ELB and etc)
A flexible, easy to use set of clients AWS APIs for Elixir
Riak CS API wrapper for Elixir
An Elixir API wrapper for the Fleet REST API
Jupyter's kernel for Elixir programming language
Kubernetes API Client for Elixir
Kubernetes API client for Elixir
Kubex is the kubernetes integration for Elixir projects and it is written in pure Elixir.
Leaseweb API Wrapper for Elixir and Erlang
Automatic cluster formation/healing for Elixir applications
Strategies For Automatic Node Discovery
Elixir/Phoenix Cloud SDK and Deployment Tool
Parallel worker and capacity limiting library for Erlang
:awesome = Elixir's Task ++ Basho's sidejob library
Automatic cluster formation/healing for Elixir applications.
CloudI is for back-end server processing tasks that require soft-realtime transaction.
Code Analysis
An example of CircleCI integration with Elixir
Coverage Reports for Elixir
A static code analysis tool for the Elixir language with a focus on code consistency and teaching.
Mix tasks to simplify use of Dialyzer in Elixir projects.
A code style linter for Elixir
Coverage report tool for Elixir with coveralls.io integration.
A simple code profiler for Elixir using eprof.
Command Line Applications
Command Line application framework for Elixir
User friendly CLI apps for Elixir
ExPrompt is a helper package to add interactivity to your command line applications as easy as possible.
Firex is a library for automatically generating command line interfaces (CLIs) from elixir module
Erlang module to parse command line arguments using the GNU getopt syntax
Loki is library that includes helpers for building powerful interactive command line applications, tasks, modules.
Command line arguments parser for Elixir
Command-line progress bars and spinners for Elixir.
A TUI (terminal UI) kit for Elixir
Pretty print tables of Elixir structs and maps
An Elixir app which generates text-based tables for display
Pretty printer for maps/structs collections (Elixir)
Command-line interface for Phoenix Framework like Rails commands.
Configuration
Useful helper to read and use application configuration from environment variables.
A simple Elixir parser for the same kind of files that Python's configparser library handles
Easy, powerful, and extendable configuration tooling for releases.
A port of dotenv to Elixir
Simple Elixir Configuration Management
Figaro for Elixir
Environmental variables manager based on Figaro for Elixir projects
Extensible runtime configuration loader with pluggable providers
An AWS Secrets Manager Provider for Hush
A Google Secret Manager Provider for Hush
something to forget about configuration in releases
Cryptography
AES CMAC (rfc 4493) in Elixir
Elixir crypto library to encrypt/decrypt arbitrary binaries
Elixir encryption library designed for Ecto
Password hashing specification for the Elixir programming language
RSASSA-PSS Public Key Cryptographic Signature Algorithm for Erlang and Elixir.
TEA implementation in Elixir
Elixir wrapper for the OpenBSD bcrypt password hashing algorithm
Wrapper around the Erlang crypto module for Elixir.
gpg interface
Elixir wrapper around libntru. NTRU is a post quantum cryptography algorithm.
One-time password library with Ecto support (for Elixir)
POT is an Erlang library for generating Google Authenticator compatible one time passwords
Erlang public_key cryptography wrapper for Elixir
Library for working with RSA keys using Elixir and OpenSSL ports
An Elixir implementation of the SipHash cryptographic hash family
A Tiny Encryption Algorithm implementation
CSV
CSV handling library for Elixir.
CSV Decoding and Encoding for Elixir
A blazing fast fully-automated CSV to database importer
A CSV reading/writing application for Elixir.
💠 ECSV: Stream CSV Parser
CSV for Elixir
A simple and fast CSV parsing and dumping library for Elixir
Date and Time
Macros to use :timer.apply_after and :timer.apply_interval with a block
date-time and time zone handling in Elixir
Calixir is a port of the Lisp calendar software calendrica-4.0 to Elixir.
An elixir date/time library
Elixir date recurrence library based on iCalendar events
A cron like system built in Elixir, that you can mount in your supervision tree
Parse Cron Expressions, Compose Cron Expression Strings and Caluclate Execution Dates.
An Elixir module for returning an emoji clock for a given hour
ICalendar parser for Elixir.
A library for performing and validating complex filters from a client (e.g. smart filters)
Expressive and easy to use datetime functions in Elixir.
A Jalaali (Jalali, Persian, Khorshidi, Shamsi) calendar system implemention for Elixir
Simple library to work with milliseconds
Moment is designed to bring easy date and time handling to Elixir.
Time calculations using business hours
Cron-like job scheduler for Elixir
Natural language for repeating dates
Fast and lightweight web scheduler
A cron-style scheduler application for Elixir.
A complete date/time library for Elixir projects.
A date/time interval library for Elixir projects, based on Timex.
tzdata for Elixir. Born from the Calendar library.
Debugging
Statistics and Metrics library for Elixir
Boot an Elixir application step by step (inspired by RabbitMQ)
Tracing for Elixir
Flame Graph profiler for Erlang
Lookup Elixir documentation from the command line
Erlang performance and debugging tools
An Elixir Debugger
A debug web toolbar for Phoenix projects to display all sorts of information about request
Runtime and debugging tools for elixir
Elixir wrapper for Recon Trace.
Add git hooks to Elixir projects
Visualize Erlang/Elixir Nodes On The Command Line
Erlang/Elixir helpers
A thin Elixir wrapper for the redbug Erlang tracing debugger.
A process/message visualizer for BEAM nodes.💪👁
Deployment
Elixir Deployment Automation Package
Ansible role to setup server with Elixir & Postgres to deploy apps
Simple deployment and server automation for Elixir.
Get your Elixir into proper recipients, and serve it nicely to final consumers
Deployment for Elixir and Erlang
Quickly get started developing clustered Elixir applications for cloud environments.
Deploy Elixir applications via mix tasks
⛔️ DEPRECATED A very simple tool for releasing elixir applications
Deployment tool for Phoenix apps
Heroku Buildpack for Elixir with nitro boost
A fully-featured PaaS designed for Elixir. Supports clustering, hot upgrades, and remote console/observer. Free to try without a credit card.
Documentation
API Documentation Generator for the Phoenix Framework
Generate Phoenix API documentation from tests