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 23 hours ago
JSON representation
-
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.
-
Benchmarking
- beamchmark - A Tool for measuring EVM performance.
- benchfella - Benchmarking tool for Elixir.
- bmark - A benchmarking tool for Elixir.
- benchee - Easy and extensible benchmarking in Elixir.
-
Bittorrent
- bento - An incredibly fast, correct, pure-Elixir Bencoding library.
- wire - Encode and decode bittorrent peer wire protocol messages with Elixir.
- tracker_request - Dealing with bittorrent tracker requests and responses.
- wire - Encode and decode bittorrent peer wire protocol messages with Elixir.
-
Books
- Adopting Elixir - 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).
- Craft GraphQL APIs in Elixir with Absinthe - Upgrade your web API to GraphQL, leveraging its flexible queries to empower your users, and its declarative structure to simplify your code (2017).
- Elixir do zero à concorrência - (Portuguese) The book provides introduction to functional and concurrent programming with Elixir by Tiago Davi (2014).
- Elixir in Action - A brief intro to the language followed by a more detailed look at building production-ready systems in Elixir by Saša Jurić (2015).
- Elixir in Action, Second Edition - 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).
- Elixir in Action, Third Edition - Fully updated to Elixir 1.14, this authoritative bestseller reveals how Elixir tackles problems of scalability, fault tolerance, and high availability (2023).
- Elixir Succinctly - A short book to learn the basic of Elixir and its ecosystem.
- Erlang and Elixir for Imperative Programmers - Introduction to Erlang and Elixir in the context of functional concepts by Wolfgang Loder (2016).
- Erlang in Anger - This book intends to be a little guide about how to be the Erlang medic in a time of war by Fred Hebert (2014).
- Functional Web Development with Elixir, OTP, and Phoenix - Open doors to powerful new techniques that will get you thinking about web development in fundamentally new ways (2017).
- Hands-on Elixir & OTP: Cryptocurrency trading bot - 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).
- Introducing Elixir - A gentle introduction to the language, with lots of code examples and exercises by Simon St. Laurent and J. David Eisenberg (2013).
- Learn Functional Programming with Elixir - Don’t board the Elixir train with an imperative mindset! To get the most out of functional languages, you need to think functionally (2017).
- Metaprogramming Elixir: Write Less Code, Get More Done (and Have Fun!) - Thorough explanation on how to exploit Elixir's metaprogramming capabilities to improve your Elixir coding by Chris McCord (2015).
- Phoenix for Rails Developers - This book shows how Rails developers can benefit from their existing knowledge to learn Phoenix. By Elvio Vicosa (2017).
- Phoenix in Action - 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).
- Phoenix Inside Out - 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.
- Programming Elixir 1.6 - The book provides introduction to functional and concurrent programming with Elixir by Dave Thomas (2014).
- Programming Phoenix 1.4 - Definitive guide to build web applications with the Phoenix framework by Chris McCord, José Valim and Bruce Tate (2015).
- The Beam Book - A description of the Erlang Runtime System ERTS and the virtual Machine BEAM.
- The Little Elixir & OTP Guidebook - A book for learning Elixir and OTP through small to medium-sized projects by Benjamin Tan Wei Hao (2014).
- Études for Elixir - A collection of exercises to program in Elixir by J. David Eisenberg (2013) ([Github Repo](https://github.com/oreillymedia/etudes-for-elixir)).
- Engineering Elixir Applications - _(currently in Beta)_ As the subtitle suggests, this book explores the technologies and skills that support navigating each stage of software delivery with confidence.
- The Phoenix LiveView Cookbook - A Phoenix LiveView e-book containing tried and tested recipes for solving common problems.
- Elixir Cookbook - This book is a set of recipes grouped by topic by Paulo A Pereira (2015).
- Async Elixir - Dive into Elixir's world of concurrency and processes with this interactive Livebook.
- Getting Started - Elixir - PDF, MOBI, and EPUB documents for Elixir's Getting Started tutorial (2016).
- Phoenix for Rails Developers - This book shows how Rails developers can benefit from their existing knowledge to learn Phoenix. By Elvio Vicosa (2017).
- Introducing Elixir - A gentle introduction to the language, with lots of code examples and exercises by Simon St. Laurent and J. David Eisenberg (2013).
- Elixir Cookbook - This book is a set of recipes grouped by topic by Paulo A Pereira (2015).
- Adopting Elixir - 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).
- Craft GraphQL APIs in Elixir with Absinthe - Upgrade your web API to GraphQL, leveraging its flexible queries to empower your users, and its declarative structure to simplify your code (2017).
- Functional Web Development with Elixir, OTP, and Phoenix - Open doors to powerful new techniques that will get you thinking about web development in fundamentally new ways (2017).
- Learn Functional Programming with Elixir - Don’t board the Elixir train with an imperative mindset! To get the most out of functional languages, you need to think functionally (2017).
- Metaprogramming Elixir: Write Less Code, Get More Done (and Have Fun!) - Thorough explanation on how to exploit Elixir's metaprogramming capabilities to improve your Elixir coding by Chris McCord (2015).
- Phoenix in Action - 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 Beam Book - A description of the Erlang Runtime System ERTS and the virtual Machine BEAM.
-
BSON
-
Build Tools
- active - Recompilation and Reloading on FileSystem changes.
- coffee_rotor - Rotor plugin to compile CoffeeScript files.
- dismake - Mix compiler running make.
- etude - Parallel computation coordination compiler for Erlang/Elixir.
- ExMake - A modern, scriptable, dependency-based build tool loosely based on Make principles.
- Exscript - Elixir escript library.
- mad - Small and Fast Rebar Replacement.
- pc - A rebar3 port compiler.
- reaxt - React template into your Elixir application for server rendering.
- rebar3_abnfc_plugin - Rebar3 abnfc compiler.
- rebar3_asn1_compiler - Plugin for compiling ASN.1 modules with Rebar3.
- rebar3_auto - Rebar3 plugin to auto compile and reload on file change.
- rebar3_diameter_compiler - Compile diameter .dia files in rebar3 projects.
- rebar3_eqc - A rebar3 plugin to enable the execution of Erlang QuickCheck properties.
- rebar3_exunit - A plugin to run Elixir ExUnit tests from rebar3 build tool.
- rebar3_idl_compiler - This is a plugin for compiling Erlang IDL files using Rebar3.
- rebar3_live - Rebar3 live plugin.
- rebar3_neotoma_plugin - Rebar3 neotoma (Parser Expression Grammar) compiler.
- rebar3_protobuffs - rebar3 protobuffs provider using protobuffs from Basho.
- rebar3_run - Run a release with one simple command.
- rebar3_yang_plugin - Rebar3 yang compiler.
- reltool_util - Erlang reltool utility functionality application.
- relx - A release assembler for Erlang.
- remix - Automatic recompilation of Mix code on file change.
- rotor - Super-simple build system for Elixir.
- sass_elixir - A sass plugin for Elixir projects.
- active - Recompilation and Reloading on FileSystem changes.
- reaxt - React template into your Elixir application for server rendering.
- rebar3_neotoma_plugin - Rebar3 neotoma (Parser Expression Grammar) compiler.
-
Caching
- cachex - A powerful caching library for Elixir with a wide featureset.
- con_cache - ConCache is an ETS based key/value storage.
- elixir_locker - Locker is an Elixir wrapper for the locker Erlang library that provides some useful libraries that should make using locker a bit easier.
- gen_spoxy - Caching made fun.
- jc - In-memory, distributable cache with pub/sub, JSON-query and consistency support.
- locker - Atomic distributed "check and set" for short-lived keys.
- lru_cache - Simple LRU Cache, implemented with ets.
- memoize - A memoization macro that easily cache function.
- request_cache_plug - Easy to use caching for requests in either Phoenix Controllers or GraphQL resolvers. Bypasses JSON encoding/decoding for a large speedup.
- stash - A straightforward, fast, and user-friendly key/value store.
- nebulex - A fast, flexible and extensible distributed and local caching library for Elixir.
-
Chatting
- alice - A Slack bot framework for Elixir.
- chatty - A basic IRC client that is most useful for writing a bot.
- cog - Cog is an open chatops platform that gives you a secure, collaborative command line right in your chat window.
- ExGram - a library to build Telegram Bots, you can use the low-level methods and models or use the really opinionated framework included. ([Docs](https://hexdocs.pm/ex_gram/readme.html)).
- ExIrc - IRC client adapter for Elixir projects.
- ExMustang - A simple, clueless slackbot and collection of responders.
- Guri - Automate tasks using chat messages.
- hedwig - XMPP Client/Bot Framework for Elixir.([Docs](https://hexdocs.pm/hedwig/readme.html)).
- hipchat_elixir - HipChat client library for Elixir, based on httpc.
- kaguya - A small, powerful, and modular IRC bot.
- slacker - A bot library for the Slack chat service.
- yocingo - Create your own Telegram Bot.
-
Cheat Sheets
- elixir-lang/elixir - Enum cheatsheets.
- benjamintanweihao/elixir-cheatsheets - GenServer and Supervisor cheatsheets.
-
Cloud Infrastructure and Management
- Cloudi - CloudI is for back-end server processing tasks that require soft-realtime transaction.
- aws - AWS clients for Elixir.
- Bonny - Kubernetes Operator Development Framework.
- discovery - An OTP application for auto-discovering services with Consul.
- erlcloud - Cloud Computing library for Erlang (Amazon EC2, S3, SQS, SimpleDB, Mechanical Turk, ELB). ([Docs](https://hexdocs.pm/erlcloud/)).
- ex_riak_cs - Riak CS API client.
- fleet_api - A simple wrapper for the Fleet (CoreOS) API. Can be used with etcd tokens or via direct node URLs.
- Gandi - Gandi Wrapper for Leaseweb infrastructure.
- IElixir - Jupyter's kernel for Elixir programming language.
- k8s - Kubernetes Elixir client with CRD support, multi-cluster support, pluggable auth, and configurable middleware.
- Kazan - Kubernetes client for Elixir, generated from the k8s open API specifications.
- Kubex - Kubernetes client and integration for Elixir, written in pure Elixir.
- Leaseweb - Elixir Wrapper for Leaseweb infrastructure.
- libcluster - Automatic cluster formation/healing for Elixir applications.([Docs](https://hexdocs.pm/libcluster/readme.html)).
- nodefinder - Strategies for automatic node discovery in Erlang.
- nomad - Create cloud portable Elixir and Phoenix apps. Write once, use everywhere.
- sidejob - Parallel worker and capacity limiting library for Erlang.
- sidetask - SideTask is an alternative to Task.Supervisor using Basho's sidejob library with parallelism and capacity limiting.
- skycluster - Automatic Erlang cluster formation, messaging and management for Elixir/Erlang applications. Integrated with Kubernetes.
- vercel - An Elixir wrapper for Vercel's API.
- Batteries Included - A self hostable platform for automation/UI driven Kubernetes; built in Elixir and Golang the entire UI is built with Phoenix Live View.
- Cloudi - CloudI is for back-end server processing tasks that require soft-realtime transaction.
- Kubereq - Kubernetes Client for Elixir based on Req.
- ex_aws - AWS client, supporting Dynamo, Kinesis, Lambda, SQS, and S3.
-
Code Analysis
- DepViz - A visual tool to help developers understand Elixir recompilation in their projects. ([Code](https://github.com/axelson/dep_viz/)).
- belvedere - An example of CircleCI integration with Elixir.
- coverex - Coverage Reports for Elixir.
- credo - A static code analysis tool with a focus on code consistency and teaching Elixir. ([Docs](https://hexdocs.pm/credo/Credo.html)).
- dialyxir - Mix tasks to simplify use of Dialyzer in Elixir projects.([Docs](https://hexdocs.pm/dialyzex/Mix.Tasks.Dialyzer.html)).
- dogma - A code style linter for Elixir, powered by shame.([Docs](https://hexdocs.pm/dogma/api-reference.html)).
- ex_check - One task to efficiently run all code analysis & testing tools in an Elixir project.
- excellent_migrations - Detecting potentially dangerous operations in database migrations.
- excoveralls - Coverage report tool for Elixir with coveralls.io integration.
- exprof - A simple code profiler for Elixir, using eprof.
- int_set - A time- and memory-efficient unordered data structure for positive integers.
-
Command Line Applications
- phoenix-cli - Command-line interface for Phoenix Framework like Rails commands.
- anubis - Command-Line application framework for Elixir.
- elementtui - Library to help create terminal user interfaces (TUI).
- firex - Firex is a library for automatically generating command line interfaces (CLIs) from an elixir module.
- getopt - Command-line options parser for Erlang.
- loki - Library for creating interactive command-line application.
- optimus - Command-line option parser for Elixir inspired by [clap.rs](https://clap.rs/).
- owl - Owl is a toolkit for writing command-line user interfaces in Elixir.
- progress_bar - Command-line progress bars and spinners.
- ratatouille - A TUI (terminal UI) kit for Elixir.
- scribe - Pretty-print tables of Elixir structs and maps. Inspired by hirb.
- table_rex - Generate configurable ASCII style tables for display.
- tabula - Pretty print list of Ecto query results / maps in ascii tables (GitHub Markdown/OrgMode).
- prompt - Toolkit for building command line applications in Elixir.
- ex_cli - User friendly CLI apps for Elixir.
- ex_prompt - Helper package to add interactivity to your command line applications as easy as possible.
-
Community
- #elixir-lang - The IRC Channel #elixir-lang on Freenode.
- Elixir Forum - Community run discussion forums for all things Elixir.
- elixir-lang-core - Mailinglist for Elixir Core development, use "talk" for questions and general discussions.
- elixir-lang-talk - Official Elixir Mailinglist for questions and discussions.
- #elixir-lang - The IRC Channel #elixir-lang on Freenode.
-
Configuration
- confex - Helper module that provides a nice way to read environment configuration at runtime.
- configparser_ex - A simple Elixir parser for the same kind of files that Python's configparser library handles.
- conform - Easy release configuration for Elixir apps.
- dotenv - A port of dotenv to Elixir.
- enux - utility 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.
- ex_conf - Simple Elixir Configuration Management.
- figaro - Simple Elixir project configuration.
- figaro_elixir - Environmental variables manager for Elixir.
- hush - Read and inject configuration at runtime, and in release mode with support for multiple providers.
- hush_aws_secrets_manager - AWS Secrets Manager provider for hush.
- hush_gcp_secret_manager - Google Secret Manager provider for hush.
- mahaul - Supercharge your environment variables in Elixir. Parse and validate with compile time access guarantees, defaults, fallbacks and app pre-boot validations.
- skogsra - Library to manage OS environment variables and application configuration options with ease.
- sweetconfig - Read YAML configuration files from any point at your app.
- weave - JIT configuration loader that works with Kubernetes and Docker Swarm.
-
Cryptography
- aescmac - AES CMAC ([RFC 4493](https://tools.ietf.org/html/rfc4493)) in Elixir.
- cipher - Elixir crypto library to encrypt/decrypt arbitrary binaries.
- cloak - Cloak makes it easy to use encryption with Ecto.([Docs](https://hexdocs.pm/cloak/readme.html)).
- comeonin - Password hashing (argon2, bcrypt, pbkdf2_sha512) library for Elixir.([https://hexdocs.pm/comeonin/api-reference.html](https://hexdocs.pm/comeonin/api-reference.html)).
- crypto_rsassa_pss - RSASSA-PSS Public Key Cryptographic Signature Algorithm for Erlang.
- elixir_tea - TEA implementation in Elixir.
- ex_bcrypt - Elixir wrapper for the OpenBSD bcrypt password hashing algorithm.
- ex_crypto - Elixir wrapper for Erlang `crypto` and `public_key` modules. Provides sensible defaults for many crypto functions to make them easier to use.([Docs](https://hexdocs.pm/ex_crypto/readme.html)).
- exgpg - Use gpg from Elixir.
- nimble_totp - Allows implementation of Time-based One-Time Passwords (TOTP) for 2FA.
- ntru_elixir - Elixir wrapper for libntru. A post quantum cryptography system.
- pot - Erlang library for generating one time passwords compatible with Google Authenticator.
- rsa - `public_key` cryptography wrapper for Elixir.
- rsa_ex - Library for working with RSA keys.
- siphash-elixir - Elixir implementation of the SipHash hash family.
- tea_crypto - Tiny Encryption Algorithm implementation.
-
CSV
- cesso - CSV handling library for Elixir.
- csv - CSV Decoding and Encoding for Elixir.
- csv2sql - A fast and fully automated CSV to database importer.
- csvlixir - A CSV reading/writing application for Elixir.
- ecsv - Fast libcsv-based stream parser for Elixir.
- ex_csv - CSV for Elixir.
- nimble_csv - A simple and fast CSV parsing and dumping library for Elixir.
-
Data Visualization
- plox - Server-side rendered SVG graphing components for Phoenix and LiveView.
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