/awesome-erlang

A curated list of awesome Erlang libraries, resources and shiny things.

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.

  • agner - Erlang package manager (A Giant Nebula of Erlang Repositories)

Release Management

Libraries and tools for release management.

  • relx - A release assembler for Erlang.

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.

Web Framework Components

Standalone component from web development frameworks.

HTTP

Libraries for working with HTTP and scraping websites.

  • lhttpc - A lightweight HTTP/1.1 client implemented in Erlang.
  • hackney - simple HTTP client in Erlang
  • gun - Asynchronous SPDY, HTTP and Websocket client written in Erlang.

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.

Code Analysis

Libraries and tools for analysing, parsing and manipulation codebases.

Build Tools

Project build and automation tools.

  • rebar - Erlang build tool that makes it easy to compile and test Erlang applications, port drivers and releases.

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.

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.

ORM and Datamapping

Libraries that implement object-relational mapping or datamapping techniques.

  • boss_db - A sharded, caching, pooling, evented ORM for Erlang.
  • mysql-otp - MySQL/OTP – MySQL driver for Erlang/OTP.

Queue

Libraries for working with event and task 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.

  • jsx - An erlang application for consuming, producing and manipulating json.
  • jsxn - This is just jsx but with maps instead of proplists.
  • jiffy - JSON NIFs for Erlang.
  • jsonrec - JSON encoder/decoder with the ability to map to records.

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.

Caching

Libraries for caching data.

Third Party APIs

Libraries for accessing third party APIs.

  • restc - An Erlang REST client
  • oauth2c - An Erlang oAuth 2 client (uses restc)

Networking

Libraries and tools for using network related stuff.

  • ranch - Socket acceptor pool for TCP protocols
  • barrel - barrel is a generic TCP acceptor pool with low latency in Erlang.
  • upnp - Erlang UPNP Module

Algorithms and Datastructures

Libraries and implementations of algorithms and datastructures.

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

  • 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 Central - An awesome collections of erlang resource along with live community chat for discussing and seeking help.

Books

Fantastic books and e-books.

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

Screencasts

Cool video tutorials.

Contributing

Please see CONTRIBUTING for details.