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.
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.