Courses & TutorialsProgramming

Awesome Erlang – Massive Collection of Resources

A curated list of amazingly awesome Erlang libraries, resources and shiny thing

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.

  • docker-erlang – Basic Docker Container Images for Erlang/OTP.

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.

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

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button