Awesome Erlang

A curated list of amazingly awesome Erlang libraries, resources and
shiny thing inspired by awesome-elixir.
Package Management
Libraries and tools for package and dependency
management.
- hex.pm - A package manager for the
Erlang ecosystem.
Release Management
Libraries and tools for release management.
- relx - A release
assembler for Erlang.
Configuration Management
Libraries and tools related to configuration management.
- stillir - Cache
environment variables as Erlang app variables.
Codebase Maintenance
Libraries and tools to maintain a clean codebase.
- elvis - Erlang Style
Reviewer.
Web Frameworks
Web development frameworks.
- Axiom - A
micro-framework, inspired by Ruby’s Sinatra.
- ChicagoBoss
- A server framework inspired by Rails and written in Erlang.
- cowboy - A simple
HTTP server.
- Giallo - A small and
flexible web framework on top of Cowboy.
- MochiWeb - An Erlang
library for building lightweight HTTP servers.
- N2O - WebSocket
Application Server.
- Nitrogen -
Framework to build web applications (including front-end) in pure
Erlang.
- Zotonic - High
speed, real-time web framework and content management system.
Web Framework Components
Standalone component from web development frameworks.
- cb_admin - An
admin interface for Chicago Boss.
- cb_websocket_controller
- A template for implementing a Websocket controller for
ChicagoBoss.
- giallo_session
- A session management library for the Giallo web framework.
- simple_bridge - An
abstraction layer providing a unified interface to popular Erlang web
servers (Cowboy, Inets, Mochiweb, Webmachine, and Yaws).
HTTP
Libraries for working with HTTP and scraping websites.
- bullet - Simple,
reliable, efficient streaming for Cowboy.
- gun - Erlang HTTP
client with support for HTTP/1.1, SPDY and Websocket.
- hackney - Simple
HTTP client in Erlang.
- ibrowse -
Erlang HTTP client.
- lhttpc - A lightweight
HTTP/1.1 client implemented in Erlang.
- shotgun - For the
times you need more than just a gun.
Testing
Libraries for testing codebases and generating test
data.
- PropEr - A
QuickCheck-inspired property-based testing tool for Erlang.
- tracerl - Dynamic
tracing tests and utilities for Erlang/OTP
Logging
Libraries for generating and working with log files.
Monitoring
Libraries for gathering metrics and monitoring.
- entop - A
top-like Erlang node monitoring tool.
- eper - A loose
collection of Erlang Performance related tools.
- Exometer - An
Erlang instrumentation package.
- folsom - An Erlang
based metrics system inspired by Coda Hale’s metrics.
- statsderl - A
statsd Erlang client.
- vmstats - Tiny Erlang
app that works in conjunction with statsderl in order to generate
information on the Erlang VM for graphite logs.
Deployment
Libraries and tools related to deployment of Erlang/OTP
applications.
Distributed Systems
Tools for stress/load testing, latency issues, etc. across
microservices.
Typhoon - Stress
and load testing tool for distributed systems that simulates traffic
from a test cluster toward a system-under-test (SUT) and visualizes
related latencies. ## Code Analysis Libraries and tools for
analysing, parsing and manipulation codebases.
Concuerror -
Concuerror is a systematic testing tool for concurrent Erlang
programs.
eflame - A Flame
Graph profiler for Erlang.
geas - Geas
is a tool that will detect the runnable official Erlang release window
for your project, including its dependencies and provides many useful
informations.
Project build and automation tools.
- rebar - Erlang build
tool that makes it easy to compile and test Erlang applications, port
drivers and releases.
- rebar3 - A build tool
for Erlang which can manage Erlang packages from Hex.pm. See more at rebar3.org
- sync - On-the-fly
recompiling for Erlang.
Geolocation
Libraries for geocoding addresses and working with latitudes and
longitudes.
- erl-rstar - An
Erlang implementation of the R*-tree spacial data structure.
- GeoCouch - A
spatial extension for Couchbase and Apache CouchDB.
- Teles - An Erlang
network service for manipulating geographic data.
Debugging
Libraries and tools for debugging code and applications.
- tx - An HTML Erlang term
viewer, starts own webserver and displays any term you give it from your
Erlang node.
Actors
Libraries and tools for working with actors and such.
- poolboy - A hunky
Erlang worker pool factory.
Date and Time
Libraries for working with dates and times.
- erlang_localtime
- Erlang library for conversion from one local time to another.
- qdate - Erlang
date, time, and timezone management: formatting, conversion, and date
arithmetic.
ORM and Datamapping
Libraries that implement object-relational mapping or datamapping
techniques.
- boss_db - A
sharded, caching, pooling, evented ORM for Erlang.
- epgsql - PostgreSQL
Driver for Erlang.
- mysql-otp -
MySQL/OTP – MySQL driver for Erlang/OTP.
- pgsql_migration –
PostgreSQL migrations for Erlang.
Queue
Libraries for working with event and task queues.
- dq - Distributed Fault
Tolerant Queue library.
- ebqueue - Tiny
simple blocking queue in erlang.
- pqueue - Erlang
Priority Queues.
- tinymq - A
diminutive, in-memory message queue for Erlang.
Authentication
Libraries for implementing authentications schemes.
- oauth2 - Erlang Oauth2
implementation.
Text and Numbers
Libraries for parsing and manipulating text and numbers.
- ejsv - Erlang
JSON schema validator.
- eql - Erlang with SQL
or not.
- jiffy - JSON NIFs for
Erlang.
- jsx - An erlang
application for consuming, producing and manipulating json.
- miffy - Jiffy
wrapper which returns pretty maps.
- qsp - Enhanced query
string parser for Erlang.
- rec2json -
Generate JSON encoder/decoder from record specs.
REST and API
Libraries and web tools for developing REST-ful APIs.
- leptus - Leptus is an
Erlang REST framework that runs on top of cowboy.
- rooster - rooster
is a lightweight REST framework that runs on top of mochiweb.
Caching
Libraries for caching data.
- cache - In-memory
Segmented Cache
Third Party APIs
Libraries for accessing third party APIs.
Networking
Libraries and tools for using network related stuff.
- barrel_tcp
- barrel_tcp is a generic TCP acceptor pool with low latency in
Erlang.
- gen_rpc - A
scalable RPC library for Erlang-VM based languages.
- gen_tcp_server -
A library that takes the concept of gen_server and introduces the same
mechanics for operating a TCP server.
- gossiperl -
Language agnostic gossip middleware and message bus written in
Erlang.
- nat_upnp - Erlang
library to map your internal port to an external using UNP IGD.
- ranch - Socket
acceptor pool for TCP protocols.
Internet of Things
Libraries and tools for interacting with the physical
world.
- GRiSP - Run the Erlang VM on an IoT
board with many hardware interfaces and low-level drivers using a small
realtime unikernel called RTEMS
- lemma_erlang -
A lemma for IDEO’s Noam internet-of-things prototyping platform.
Algorithms and
Datastructures
Libraries and implementations of algorithms and
datastructures.
- datum - A pure
functional and generic programming for Erlang
- erlando - A set
of syntax extensions like currying and monads for Erlang.
- statebox - Erlang
state “monad” with merge/conflict-resolution capabilities.
- riak_dt - Erlang
library of state based CRDTs.
Translations and
Internationalizations
Libraries providing translations or
internationalizations.
Miscellaneous
Useful libraries or tools that don’t fit in the categories
above.
- erlang-history
- Hacks to add shell history to Erlang’s shell.
- erld - erld is a
small program designed to solve the problem of running Erlang programs
as a UNIX daemon.
Resources
Various resources, such as books, websites and articles, for
improving your Erlang development skills and knowledge.
Websites
Useful web and Erlang-related websites and newsletters.
- Erlang
Bookmarks - All about erlang programming language [powerd by
community].
- Erlang Central - An awesome
collections of erlang resource along with live community chat for
discussing and seeking help.
- Planet Erlang - Planet
site/RSS feed of blog posts covering topics across the Erlang
ecosystem.
- Spawned Shelter - Erlang
Spawned Shelter. A collection of the best articles, videos and
presentations related to Erlang.
Books
Fantastic books and e-books.
Web Reading
General web-development-related reading materials.
Erlang Reading
Erlang-releated reading materials.
Screencasts
Cool video tutorials.
Contributing
Please see CONTRIBUTING
for details.
erlang.md
Github