Awesome Erlang Overview
A curated list of awesome Erlang libraries, resources and shiny things.
🏠 Home · 🔥 Feed · 📮 Subscribe · ❤️ Sponsor · 😺 drobakowski/awesome-erlang · ⭐ 1.4K · 🏷️ Programming Languages
Awesome Erlang
A curated list of amazingly awesome Erlang libraries, resources and shiny thing inspired by awesome-elixir (⭐12k).
- Awesome Erlang
- Package Management
- Release Management
- Configuration Management
- Codebase Maintenance
- Web Frameworks
- Web Framework Components
- HTTP
- Testing
- Logging
- Monitoring
- Deployment
- Distributed Systems
- Code Analysis
- Build Tools
- Geolocation
- Debugging
- Actors
- Date and Time
- ORM and Datamapping
- Queue
- Authentication
- Text and Numbers
- REST and API
- Caching
- Third Party APIs
- Networking
- Internet of Things
- Algorithms and Datastructures
- Translations and Internationalizations
- Miscellaneous
- Resources
- Other Awesome Lists
- Contributing
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 (⭐669) - A release assembler for Erlang.
Configuration Management
Libraries and tools related to configuration management.
- stillir (⭐50) - Cache environment variables as Erlang app variables.
Codebase Maintenance
Libraries and tools to maintain a clean codebase.
- elvis (⭐407) - Erlang Style Reviewer.
Web Frameworks
Web development frameworks.
- Axiom (⭐265) - A micro-framework, inspired by Ruby's Sinatra (⭐12k).
- ChicagoBoss (⭐1.8k) - A server framework inspired by Rails and written in Erlang.
- cowboy (⭐6.8k) - A simple HTTP server.
- Giallo (⭐69) - A small and flexible web framework on top of Cowboy (⭐6.8k).
- MochiWeb (⭐1.8k) - An Erlang library for building lightweight HTTP servers.
- N2O (⭐1.3k) - WebSocket Application Server.
- Nitrogen (⭐906) - Framework to build web applications (including front-end) in pure Erlang.
- Zotonic (⭐762) - High speed, real-time web framework and content management system.
Web Framework Components
Standalone component from web development frameworks.
- cb_admin (⭐67) - An admin interface for Chicago Boss.
- cb_websocket_controller (⭐7) - A template for implementing a Websocket controller for ChicagoBoss.
- giallo_session (⭐10) - A session management library for the Giallo web framework.
- simple_bridge (⭐106) - 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 (⭐302) - Simple, reliable, efficient streaming for Cowboy.
- gun (⭐812) - Erlang HTTP client with support for HTTP/1.1, SPDY and Websocket.
- hackney (⭐1.2k) - Simple HTTP client in Erlang.
- ibrowse (⭐519) - Erlang HTTP client.
- lhttpc (⭐126) - A lightweight HTTP/1.1 client implemented in Erlang.
- shotgun (⭐163) - For the times you need more than just a gun.
Testing
Libraries for testing codebases and generating test data.
- PropEr (⭐838) - A QuickCheck-inspired property-based testing tool for Erlang.
- tracerl (⭐16) - Dynamic tracing tests and utilities for Erlang/OTP
Logging
Libraries for generating and working with log files.
- lager (⭐39) - A logging framework for Erlang/OTP.
- lager_amqp_backend (⭐33) - AMQP RabbitMQ Lager backend.
- lager_hipchat (⭐7) - HipChat backend for lager.
- lager_loggly (⭐16) - Loggly backend for lager.
- lager_smtp (⭐13) - SMTP backend for lager.
- lager_slack (⭐3) - Simple Slack backend for lager.
- logplex (⭐986) - Heroku log router.
Monitoring
Libraries for gathering metrics and monitoring.
- entop (⭐271) - A top-like Erlang node monitoring tool.
- eper (⭐440) - A loose collection of Erlang Performance related tools.
- Exometer (⭐520) - An Erlang instrumentation package.
- folsom (⭐588) - An Erlang based metrics system inspired by Coda Hale's metrics (⭐450).
- statsderl (⭐99) - A statsd Erlang client.
- vmstats (⭐247) - 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.
- docker-erlang (⭐12) - Basic Docker Container Images for Erlang/OTP.
Distributed Systems
Tools for stress/load testing, latency issues, etc. across microservices.
- Typhoon (⭐43) - 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 (⭐299) - Concuerror is a systematic testing tool for concurrent Erlang programs.
- eflame (⭐401) - A Flame Graph profiler for Erlang.
- geas (⭐105) - Geas is a tool that will detect the runnable official Erlang release window for your project, including its dependencies and provides many useful informations.
Build Tools
Project build and automation tools.
- rebar (⭐940) - Erlang build tool that makes it easy to compile and test Erlang applications, port drivers and releases.
- rebar3 (⭐1.5k) - A build tool for Erlang which can manage Erlang packages from Hex.pm. See more at rebar3.org
- sync (⭐724) - On-the-fly recompiling for Erlang.
Geolocation
Libraries for geocoding addresses and working with latitudes and longitudes.
- erl-rstar (⭐56) - An Erlang implementation of the R*-tree spacial data structure.
- GeoCouch (⭐513) - A spatial extension for Couchbase and Apache CouchDB.
- Teles (⭐15) - An Erlang network service for manipulating geographic data.
Debugging
Libraries and tools for debugging code and applications.
- tx (⭐79) - 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 (⭐1.5k) - A hunky Erlang worker pool factory.
Date and Time
Libraries for working with dates and times.
- erlang_localtime (⭐53) - Erlang library for conversion from one local time to another.
- qdate (⭐235) - 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 (⭐269) - A sharded, caching, pooling, evented ORM for Erlang.
- epgsql (⭐374) - PostgreSQL Driver for Erlang.
- mysql-otp (⭐340) - MySQL/OTP – MySQL driver for Erlang/OTP.
- pgsql_migration (⭐19) – PostgreSQL migrations for Erlang.
Queue
Libraries for working with event and task queues.
- dq (⭐34) - Distributed Fault Tolerant Queue library.
- ebqueue (⭐8) - Tiny simple blocking queue in erlang.
- pqueue (⭐163) - Erlang Priority Queues.
- tinymq (⭐124) - A diminutive, in-memory message queue for Erlang.
Authentication
Libraries for implementing authentications schemes.
- oauth2 (⭐216) - Erlang Oauth2 implementation.
Text and Numbers
Libraries for parsing and manipulating text and numbers.
- ejsv - Erlang JSON schema validator.
- eql (⭐110) - Erlang with SQL or not.
- jiffy (⭐827) - JSON NIFs for Erlang.
- jsx (⭐670) - An erlang application for consuming, producing and manipulating json.
- miffy (⭐3) - Jiffy wrapper which returns pretty maps.
- qsp (⭐19) - Enhanced query string parser for Erlang.
- rec2json (⭐47) - Generate JSON encoder/decoder from record specs.
REST and API
Libraries and web tools for developing REST-ful APIs.
- leptus (⭐354) - Leptus is an Erlang REST framework that runs on top of cowboy.
- rooster (⭐176) - rooster is a lightweight REST framework that runs on top of mochiweb.
Caching
Libraries for caching data.
- cache (⭐134) - In-memory Segmented Cache
Third Party APIs
Libraries for accessing third party APIs.
- google-token-erlang (⭐3) - Google ID token verifier for Erlang.
- restc (⭐86) - An Erlang REST client
- oauth2c (⭐71) - An Erlang oAuth 2 client (uses restc)
Networking
Libraries and tools for using network related stuff.
- barrel_tcp (⭐84) - barrel_tcp is a generic TCP acceptor pool with low latency in Erlang.
- gen_rpc (⭐218) - A scalable RPC library for Erlang-VM based languages.
- gen_tcp_server (⭐10) - A library that takes the concept of gen_server and introduces the same mechanics for operating a TCP server.
- gossiperl (⭐45) - Language agnostic gossip middleware and message bus written in Erlang.
- nat_upnp (⭐42) - Erlang library to map your internal port to an external using UNP IGD.
- ranch (⭐1.1k) - 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 (⭐7) - A lemma for IDEO's Noam internet-of-things prototyping platform.
Algorithms and Datastructures
Libraries and implementations of algorithms and datastructures.
- datum (⭐115) - A pure functional and generic programming for Erlang
- erlando (⭐2) - A set of syntax extensions like currying and monads for Erlang.
- statebox (⭐244) - Erlang state "monad" with merge/conflict-resolution capabilities.
- riak_dt (⭐336) - 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 (⭐496) - Hacks to add shell history to Erlang's shell.
- erld (⭐194) - 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 (⭐1.1k) - 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.
- Erlang and Elixir for Imperative Programmers - Introduction to Erlang and Elixir in the context of functional concepts by Wolfgang Loder (2016)
- Learn You Some Erlang - Learn you some Erlang - for great good! A very thorough resource covering everything from beginning Erlang programming to large-scale development and deployment.
- Stuff Goes Bad - ERLANG IN ANGER - This book intends to be a little guide about how to be the Erlang medic in a time of war.
Web Reading
General web-development-related reading materials.
Erlang Reading
Erlang-releated reading materials.
- The Joy of Erlang; Or, How To Ride A Toruk - The Joy of Erlang; Or, How To Ride A Toruk A fast track introduction to Erlang that teaches the language by walking through a few example projects.
Screencasts
Cool video tutorials.
Contributing
Please see CONTRIBUTING (⭐1.4k) for details.