awesome-elixir
A curated list of amazingly awesome Elixir and Erlang libraries, resources and shiny things. Updates:
https://github.com/h4cc/awesome-elixir
Last synced: about 17 hours ago
JSON representation
-
Actors
-
Algorithms and Data structures
- data_morph - Create Elixir structs from data.
- aja - High performance persistent vectors and ordered maps.
- array - An Elixir wrapper library for Erlang's array.
- aruspex - Aruspex is a configurable constraint solver, written purely in Elixir.
- bimap - Pure Elixir implementation of [bidirectional maps](https://en.wikipedia.org/wiki/Bidirectional_map) and multimaps.
- bitmap - Pure Elixir implementation of [bitmaps](https://en.wikipedia.org/wiki/Bitmap).
- blocking_queue - BlockingQueue is a simple queue implemented as a GenServer. It has a fixed maximum length established when it is created.
- bloomex - A pure Elixir implementation of Scalable Bloom Filters.
- clope - Elixir implementation of CLOPE: A Fast and Effective Clustering Algorithm for Transactional Data.
- Closure Table - Closure Table for Elixir - a simple solution for storing and manipulating complex hierarchies. It provides in-memory and Ecto adapters.
- combination - Elixir library to generate combinations and permutations from Enumerable collection.
- conrex - An Elixir implementation of the CONREC algorithm for topographic or isochrone maps.
- count_buffer - Buffer a large set of counters and flush periodically.
- cuckoo - A pure Elixir implementation of [Cuckoo Filters](https://www.cs.cmu.edu/%7Edga/papers/cuckoo-conext2014.pdf).
- cuid - Collision-resistant ids optimized for horizontal scaling and sequential lookup performance, written in Elixir.
- dataframe - Package providing functionality similar to Python's Pandas or R's data.frame().
- datastructures - A collection of protocols, implementations and wrappers to work with data structures.
- def_memo - A memoization macro (defmemo) for elixir using a genserver backing store.
- dlist - Deque implementations in Elixir.
- eastar - A* graph pathfinding in pure Elixir.
- ecto_materialized_path - Tree structure, hierarchy and ancestry for the ecto models.
- ecto_state_machine - Finite state machine pattern implemented on Elixir and adopted for Ecto.
- elistrix - A latency / fault tolerance library to help isolate your applications from an uncertain world of slow or failed services.
- emel - A simple and functional machine learning library written in elixir.
- erlang-algorithms - Implementations of popular data structures and algorithms.
- exconstructor - An Elixir library for generating struct constructors that handle external data with ease.
- exfsm - Simple elixir library to define a static FSM.
- exmatrix - ExMatrix is a small library for working with matrices, originally developed for testing matrix multiplication in parallel.
- exor_filter - Nif for xor_filters. 'Faster and Smaller Than Bloom and Cuckoo Filters'.
- ezcryptex - Thin layer on top of Cryptex.
- flow - Computational parallel flows on top of GenStage.
- fnv - Pure Elixir implementation of Fowler–Noll–Vo hash functions.
- fsm - Finite state machine as a functional data structure.
- fuse - This application implements a so-called circuit-breaker for Erlang.
- gen_fsm - A generic finite state-machine - Elixir wrapper around OTP's gen_fsm.
- graphex - A library for composing and executing task graphs in elixir.
- graphmath - An Elixir library for performing 2D and 3D mathematics.
- hash_ring_ex - A consistent hash-ring implementation for Elixir.
- hypex - Fast Elixir implementation of HyperLogLog.
- indifferent - Indifferent access for Elixir maps/list/tuples with custom key conversion.
- isaac - Isaac is an elixir module for ISAAC: a fast cryptographic random number generator.
- jumper - Jump consistent hash implementation in Elixir (without NIFs).
- key2value - Erlang 2-way Set Associative Map.
- lfsr - Elixir implementation of a binary Galois Linear Feedback Shift Register.
- loom - A CRDT library with δ-CRDT support.
- luhn - Luhn algorithm in Elixir.
- lz4 - LZ4 bindings for Erlang for fast data compressing.
- machinery - A state machine library for structs in general, it integrates with Phoenix out of the box.
- mason - Coerce maps into structs. This is helpful e.g. when you interface a REST API and want to create a struct from the response.
- matrex - A blazing fast matrix library for Elixir/Erlang with C implementation using CBLAS.
- merkle_tree - A Merkle hash tree implementation in Elixir.
- minmaxlist - Elixir library extending `Enum.min_by/2`, `Enum.max_by/2` and `Enum.min_max_by/2` to return a list of results instead of just one.
- mmath - A library for performing math on number 'arrays' in binaries.
- monadex - Upgrade your Elixir pipelines with monads.
- murmur - A pure Elixir implementation of the non-cryptographic hash Murmur3.
- nary_tree - An Elixir implementation of generic n-ary tree data structure.
- natural_sort - Elixir natural sort implementation for lists of strings.
- navigation_tree - A navigation tree representation with helpers to generate HTML out of it.
- parallel_stream - A parallel stream implementation for Elixir.
- paratize - Elixir library providing some handy parallel processing (execution) facilities that support configuring number of workers and timeout.
- parex - Parallel Execute (Parex) is an Elixir module for executing multiple (slow) processes in parallel.
- qcomplex - Elixir library implementing complex numbers and math operations for them.
- qex - Wraps `:queue`, with improved API and `Inspect`, `Collectable` and `Enumerable` protocol implementations.
- qrational - Elixir library implementing rational numbers and math operations for them.
- ratio - Adds Rational Numbers and allows them to be used in common arithmetic operations. Also supports conversion between Floats and Rational Numbers.
- red_black_tree - Red-Black tree implementation in Elixir.
- remodel - An Elixir presenter package used to transform map structures.
- rendezvous - Implementation of the Rendezvous or Highest Random Weight (HRW) hashing algorithm in Elixir.
- rock - Elixir implementation of ROCK: A Robust Clustering Algorithm for Categorical Attributes.
- simhash - Simhash implementation using Siphash and N-grams.
- sleeplocks - BEAM friendly spinlocks for Elixir/Erlang.
- sorted_set - Sorted Sets for Elixir.
- spacesaving - stream count distinct element estimation using the "space saving" algorithm.
- structurez - A playground for data structures in Elixir.
- supermemo - An Elixir implementation of the [Supermemo 2 algorithm](https://www.supermemo.com/english/ol/sm2.htm).
- tfidf - An Elixir implementation of term frequency–inverse document frequency.
- the_fuzz - Fuzzy string-matching algorithm implementations.
- trie - Erlang Trie Implementation.
- zipper_tree - Variadic arity tree with a zipper for Elixir.
- eastar - A* graph pathfinding in pure Elixir.
- exfsm - Simple elixir library to define a static FSM.
- red_black_tree - Red-Black tree implementation in Elixir.
- sfmt - SIMD-oriented Fast Mersenne Twister (SFMT) for Erlang.
- sorted_set - Sorted Sets for Elixir.
- tinymt - Tiny Mersenne Twister (TinyMT) for Erlang.
- witchcraft - Common algebraic structures and functions for Elixir.
-
Applications
- Lynx - A Fast, Secure and Reliable Terraform Backend, Set up in Minutes.
- Caddishouse - A web-based document reader that connects to your cloud storage accounts using Phoenix/LiveView.
- CaptainFact - A collaborative, real-time video fact-checking platform. ([Docs](https://captainfact.io/)).
- chat - A tiny text chat sample based on N2O.
- Consolex - Consolex is a tool that allows you to attach a web based console to any mix project.
- dragonfly_server - Elixir app to serve Dragonfly images.
- exchat - A Slack-like app by Elixir, Phoenix & React (redux).
- Exon - A “mess manager” developed in Elixir and provides a simple API to manage & document your stuff. ([Docs](https://hexdocs.pm/exon/readme.html)).
- ExShop - Digital goods shop & blog created using Phoenix framework.
- Hydra - A multi-headed beast: API gateway, request cache, and data transformations.
- Igthorn - Cryptocurrecy trading platform / trading bot with admin panel.
- majremind - A self-maintained database of your updated server which tells you which one needs to be updated.
- medex - Medical Examination - application for register health check callbacks and represent their state via HTTP.
- Nvjorn - A multi-protocol network services monitor written in Elixir using Poolboy.
- Phoenix Battleship - The Good Old game built with Elixir, Phoenix Framework, React and Redux.
- Phoenix Toggl - Toggl tribute done in Elixir, Phoenix Framework, React and Redux.
- Phoenix Trello - Trello tribute done in Elixir, Phoenix Framework, React and Redux.
- Plural - Deploys 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.
- poxa - Open Pusher implementation, compatible with Pusher libraries.
- Queerlink - A simple yet efficient URL shortening service written in Elixir.
- RemoteRetro - A real-time application for conducting Agile retrospectives at [remoteretro.org](https://remoteretro.org) written in Elixir/Phoenix/React.
- Sprint Poker - Online estimation tool for Agile teams, written using Elixir Lang, Phoenix Framework and React.
- Startup Job - An umbrella project to search startup jobs scraped from websites written in Elixir/Phoenix and React/Redux.
- tty2048 - Terminal-based 2048 game written in Elixir.
- uai_shot - A multiplayer ship game built with Elixir, Phoenix Framework and Phaser.
- utils - Website with handy day-to-day utils: to do list, URL shortener, code bin and pie chart. Written in Elixir using Phoenix Framework.
- workbench - From Idea to Execution - Manage your trading operation across a globally distributed cluster.
- Harpoon - A webhook receiver/inspector app, made using Phoenix and LiveView, it's basically a simplified version of [webhook.site](htts://webhook.site).
- Tai - A composable, real time, cryptocurrency market data and trade execution toolkit.
- ExShop - Digital goods shop & blog created using Phoenix framework.
- medusa_server - A simple cowboy web server written in Elixir to stack images. ([Docs](https://hexdocs.pm/medusa/0.2.0/api-reference.html)).
-
Artificial Intelligence
- Runhyve - Runhyve is complete virtual machines manager for bhyve on FreeBSD. It's written in Elixir and uses Phoenix framework.
- Weaviate - Weaviate client and macros for declaring records. ([Docs](https://hexdocs.pm/noizu_weaviate/api-reference.html)).
- Axon - Nx-powered Neural Networks.
- Beaver - Beaver is a LLVM/MLIR Toolkit in Elixir and Zig.
- ExLLama - LlamaCpp Nif Extensions for Elixir/Erlang. ([Docs](https://hexdocs.pm/ex_llama/ExLLama.html)).
- Exnn - Evolutive Neural Networks framework à la G.Sher written in Elixir. ([Docs](http://zampino.github.io/exnn/)).
- GenAI - An extensible Generative AI Completion API Wrapper with basic chat completion with tool use support provided for Gemini, Anthropic, OpenAI, and Mistral models. ([Docs](https://hexdocs.pm/genai/GenAI.html)).
- m2cgen - A CLI tool to transpile trained classic ML models into a native Elixir code with zero dependencies.
- Neat-Ex - An Elixir implementation of the NEAT algorithm. ([Docs](https://hexdocs.pm/neat_ex/Neat.html)).
- Noizu-OpenAi - An Elixir Api for the OpenAI Library. ([Docs](https://hexdocs.pm/noizu_labs_open_ai/api-reference.html)).
- Nx - Multi-dimensional arrays (tensors) and numerical definitions for Elixir.
- simple_bayes - A Simple Bayes / Naive Bayes implementation in Elixir.
- Synapses - A lightweight library for neural networks.
- AshAI - AI and LLM toolkit for Ash applications. MCP server, MCP dev tools, vector embeddings, chat interfaces, and more.
- Jido - Autonomous agent framework for Elixir. Built for distributed, autonomous behavior and dynamic workflows.
- ReqLLM - LLM Client supporting over 100+ LLM Providers and Models
- Noizu-OpenAi - An Elixir Api for the OpenAI Library. ([Docs](https://hexdocs.pm/noizu_labs_open_ai/api-reference.html)).
-
Audio and Sounds
-
Authentication
- ueberauth_auth0 - An Ueberauth strategy for using Auth0 to authenticate your users.
- aeacus - A simple configurable identity/password authentication module (Compatible with Ecto/Phoenix).
- apache_passwd_md5 - Apache/APR Style Password Hashing.
- aws_auth - AWS Signature Version 4 Signing Library for Elixir.
- basic_auth - Elixir Plug to easily add HTTP basic authentication to an app.
- coherence - Coherence is a full featured, configurable authentication system for Phoenix. ([Docs](https://hexdocs.pm/coherence/Coherence.html)).
- doorman - Tools to make Elixir authentication simple and flexible.
- elixir_auth_google - The simplest way to add Google OAuth authentication ("Sign in with Google") to your Elixir/Phoenix app.
- ex_aws_msk_iam_auth - AWS Managed Streaming for Apache Kafka (MSK) IAM Authentication plugin for Broadway Kafka.
- github_oauth - A simple github oauth library.
- goth - OAuth 2.0 library for server to server applications via Google Cloud APIs.
- guardian - An authentication framework for use with Elixir applications. ([Docs](https://hexdocs.pm/guardian/Guardian.html)).
- guardian_db - An extension to Guardian that tracks tokens in your application's database to prevent playback. ([Docs](https://hexdocs.pm/guardian_db/readme.html)).
- guardian_redis - Redis repository for Guardian DB. ([Docs](https://hexdocs.pm/guardian_redis/readme.html)).
- htpasswd - Apache htpasswd file reader/writer in Elixir.
- mojoauth - MojoAuth implementation in Elixir.
- oauth2_facebook - A Facebook OAuth2 Provider for Elixir.
- oauth2_github - A GitHub OAuth2 Provider for Elixir.
- oauth2cli - Simple OAuth2 client written for Elixir.
- oauth2ex - Another OAuth 2.0 client library for Elixir.
- oauther - An OAuth 1.0 implementation for Elixir.
- passwordless_auth - Simple passwordless login or 2-factor / multi-factor authentication for Elixir.
- phauxth - Authentication library for Phoenix 1.3 and other Plug-based apps.
- phoenix_client_ssl - Client SSL Authentication Plugs for Phoenix and other Plug-based apps.
- phx_gen_auth - An authentication system generator for Phoenix 1.5 applications.
- samly - SAML SP SSO made easy ([Doc](https://hexdocs.pm/samly/readme.html)).
- sesamex - Another simple and flexible authentication solution in 5 minutes!.
- sigaws - AWS Signature V4 signing and verification library ([Doc](https://hexdocs.pm/sigaws/Sigaws.html)).
- ueberauth - An Elixir Authentication System for Plug-based Web Applications.
- ueberauth_cas - Central Authentication Service strategy for Überauth.
- ueberauth_facebook - Facebook OAuth2 Strategy for Überauth.
- ueberauth_foursquare - Foursquare OAuth2 Strategy for Überauth.
- ueberauth_github - A GitHub strategy for Überauth.
- ueberauth_google - A Google strategy for Überauth.
- ueberauth_identity - A simple username/password strategy for Überauth.
- ueberauth_line - LINE Strategy for Überauth.
- ueberauth_microsoft - A Microsoft strategy for Überauth.
- ueberauth_slack - A Slack strategy for Überauth.
- ueberauth_twitter - Twitter Strategy for Überauth.
- ueberauth_weibo - [Weibo](https://weibo.com) OAuth2 Strategy for Überauth.
- zachaeus - An easy to use licensing system, based on asymmetric cryptography.
- pow - Robust, modular, and extendable user authentication system ([Website](https://powauth.com) - [Doc](https://hex.pm/packages/pow)).
- oauth2 - An OAuth 2.0 client library for Elixir.
- apache_passwd_md5 - Apache/APR Style Password Hashing.
- htpasswd - Apache htpasswd file reader/writer in Elixir.
- basic_auth - Elixir Plug to easily add HTTP basic authentication to an app.
- ueberauth_vk - [vk.com](https://vk.com) Strategy for Überauth.
-
Authorization
- authorize - Rule based authorization, for advanced authorization rules.
- bodyguard - A flexible authorization library for Phoenix applications.
- canada - A simple authorization library that provides a friendly interface using declarative permission rules.
- canary - An authorization library for Elixir applications that restricts what resources the current user is allowed to access. ([Docs](https://hexdocs.pm/canary/api-reference.html)).
- speakeasy - Middleware based authentication and authorization for Absinthe GraphQL powered by Bodyguard.
- terminator - Database based authorization (ACL), with custom DSL rules for requiring needed permissions. ([Docs](https://hexdocs.pm/terminator/readme.html)).
-
Behaviours and Interfaces
- connection - Connection behaviour for connection processes. The API is superset of the GenServer API.
- gen_state_machine - Elixir wrapper for gen_statem.
- stockastic - Simple Elixir wrapper for the Stockfighter API.
Programming Languages
Categories
Third Party APIs
124
ORM and Datamapping
107
Framework Components
89
Algorithms and Data structures
86
Text and Numbers
79
Testing
66
Miscellaneous
62
Authentication
47
HTTP
43
Books
37
Queue
36
Applications
31
Utilities
30
Examples and funny stuff
29
Build Tools
29
Macros
27
Cloud Infrastructure and Management
24
Date and Time
22
Logging
21
Instrumenting / Monitoring
21
Editors
21
Websites
21
Images
21
Networking
20
JSON
19
Geolocation
19
Files and Directories
18
Artificial Intelligence
17
Command Line Applications
16
Cryptography
16
Validations
16
Frameworks
16
Screencasts
16
Configuration
15
Reading
15
Debugging
15
Email
14
XML
13
Release Management
12
Chatting
12
Templating
12
Protocols
12
Caching
11
Deployment
11
REST and API
11
Code Analysis
11
Documentation
10
Static Page Generation
9
Translations and Internationalizations
9
Security
9
Games
8
HTML
8
CSV
7
Other Awesome Lists
7
Errors and Exception Handling
6
Authorization
6
PDF
6
Newsletters
6
Statistics
6
Podcasts
6
Behaviours and Interfaces
6
Community
5
Search
5
Actors
5
Eventhandling
5
Domain-specific language
5
YAML
5
Audio and Sounds
5
Natural Language Processing (NLP)
5
Markdown
5
Feeds
4
Bittorrent
4
Benchmarking
4
Feature Flags and Toggles
4
ECMAScript
4
OTP
4
Styleguides
3
Package Management
3
Native Implemented Functions
3
Lexical analysis
3
Data Visualization
3
BSON
3
Hardware
3
Office
3
Languages
3
Video
2
GUI
2
Cheat Sheets
2
Encoding and Compression
2
WebAssembly
2
SMS
1
Forms
1
QUIC
1
Embedded Systems
1
Version Control
1
Sub Categories
Keywords
elixir
437
elixir-lang
74
phoenix
65
erlang
55
hex
43
ecto
31
elixir-library
26
phoenix-framework
26
plug
21
authentication
14
database
14
http
13
elixir-phoenix
13
testing
11
oauth2
11
json
11
otp
10
ueberauth
10
oauth
10
api
9
package
8
liveview
8
html
8
kubernetes
8
redis
8
slack
8
data-structures
8
macros
7
metrics
7
graphql
7
machine-learning
6
ueberauth-strategies
6
xml
6
exunit
6
functional-programming
6
distributed-systems
6
rest
6
web
6
mix
6
http-client
6
mix-tasks
6
security
6
monitoring
6
redux
5
beam
5
cloud
5
javascript
5
cli
5
configuration
5
websocket
5