A curated list of amazingly awesome Elixir libraries, resources and shiny things.
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 1768 commits behind h4cc:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
CONTRIBUTING.md
README.md

README.md

Awesome Elixir

A curated list of amazingly awesome Elixir libraries, resources and shiny thing inspired by awesome-php.

Package Management

Libraries and tools for package and dependency management.

  • Hex - A package manager for the Erlang ecosystem.

Release Management

Libraries and tools for release management.

  • exrm - Automatically generate a release for your Elixir project.
  • exrm_rpm - Create a rpm for your elixir release with ease.

Frameworks

Web development frameworks.

  • dynamo - Dynamo is an experimental web framework that runs on Elixir.
  • phoenix - Elixir Web Framework targeting full-featured, fault tolerant applications with realtime functionality.
  • sugar - Modular web framework for Elixir.
  • weber - Web framework for Elixir inspired by Rails.

Framework Components

Standalone component from web development frameworks.

  • plug - A specification and conveniences for composable modules in between web applications.

HTTP

Libraries for working with HTTP and scraping websites.

  • cauldron - An HTTP/SPDY server as a library.
  • exvcr - HTTP request/response recording library for elixir, inspired by VCR.
  • httpoison - Yet Another HTTP client for Elixir powered by hackney.
  • httpotion - Fancy HTTP client for Elixir, based on ibrowse.
  • httprot - HTTP client library.

Testing

Libraries for testing codebases and generating test data.

  • amrita - A polite, well mannered and thoroughly upstanding testing framework for Elixir.
  • excheck - Property-based testing library for Elixir (QuickCheck style).
  • faker - Faker is pure Elixir library for generating fake data.

Code Analysis

Libraries and tools for analysing, parsing and manipulation codebases.

  • coverex - Coverage Reports for Elixir.
  • excoveralls - Coverage report tool for Elixir with coveralls.io integration.
  • dialyxir - Mix tasks to simplify use of Dialyzer in Elixir projects.

Build Tools

Project build and automation tools.

  • rotor - Super-simple build system for Elixir.
  • coffee_rotor - Rotor plugin to compile CoffeeScript files.

Geolocation

Libraries for geocoding addresses and working with latitudes and longitudes.

  • geo - A collection of GIS functions for Elixir.

Debugging

Libraries and tools for debugging code and applications.

  • dbg - Distributed tracing for Elixir.

Actors

Libraries and tools for working with actors and such.

  • exactor - Helpers for easier implementation of actors in Elixir.
  • poolboy - A hunky Erlang worker pool factory.
  • workex - Backpressure and flow control in EVM processes.

Date and Time

Libraries for working with dates and times.

  • chronos - An elixir date/time library.
  • timex - Easy to use Date and Time modules for Elixir.

ORM and Datamapping

Libraries that implement object-relational mapping or datamapping techniques.

  • atlas - Object Relational Mapper for Elixir.
  • dexts - Disk Elixir Terms Storage, dest wrapper.
  • ecto - A database wrapper and language integrated query for Elixir.
  • exts - Elixir Terms Storage, ets wrapper.
  • postgrex - ostgreSQL driver for Elixir.
  • ssdb_elixir - ssdb client for Elixir with focus on performance.

Queue

Libraries for working with event and task queues.

  • exrabbit - RabbitMQ bindings and DSL for Elixir.

Authentication

Libraries for implementing authentications schemes.

  • oauther - An OAuth 1.0 implementation for Elixir.

Text and Numbers

Libraries for parsing and manipulating text and numbers.

  • calliope - An elixir haml parser.
  • cesso - CSV handling library for Elixir.
  • cldr - cldr is a library to use information from CLDR data.
  • colors - Colors util written in Elixir.
  • decimal - Arbitrary precision decimal arithmetic for Elixir.
  • descriptive_statistics - Descriptive Statistics for Elixir.
  • discount - Elixir NIF for discount, a Markdown parser.
  • exjson - JSON parser and genarator in Elixir.
  • exmerl - Elixir wrapper for xmerl.
  • inflex - An Inflector library for Elixir.
  • jazz - Yet another library to handle JSON in Elixir.
  • jsex - json for elixir.
  • jsx - an erlang application for consuming, producing and manipulating json.
  • jsxn - jsx but with maps.
  • saltie - Saltie is a pseudo-encryption library primarily used for obfuscating numerical identifiers to opaque strings.
  • statistics - Some basic statistical functions for Elixir.
  • uuid - UUID generator and utilities for Elixir.

REST and API

Libraries and web tools for developing REST-ful APIs.

  • urna - Urna is a simple DSL around cauldron to implement REST services.

Caching

Libraries for caching data.

  • con_cache - ConCache is an ETS based key/value storage.

Third Party APIs

Libraries for accessing third party APIs.

  • balanced - Balanced Api Client for Elixir.
  • currently - A tool to display cards currently assigns on Trello.
  • dpd_client - An API client for the DPD service.
  • dropbox - Dropbox Core API client for Elixir.
  • exgravatar - An Elixir module for generating Gravatar urls.
  • extwitter - Twitter client library for elixir.
  • facebook - Facebook Graph API Wrapper written in Elixir.
  • reap - Reap is a simple Elixir library for working with the refheap API.

Networking

Libraries and tools for using network related stuff.

  • chatty - A basic IRC client that is most useful for writing a bot.
  • ExIrc - IRC client adapter for Elixir projects.
  • reagent - reagent is a socket acceptor pool for Elixir.
  • socket - Socket wrapping for Elixir.
  • wpa_supplicant - Elixir interface to the wpa_supplicant.

Algorithms and Datastructures

Libraries and implementations of algorithms and datastructures.

  • hash_ring_ex - A consistent hash ring implemention for Elixir.

Translations and Internationalizations

Libraries providing translations or internationalizations.

  • linguist - Elixir Internationalization library.

Miscellaneous

Useful libraries or tools that don't fit in the categories above.

  • Apex - Awesome Print for Elixir.
  • conform - Easy release configuration for Elixir apps.
  • core - Library for selective receive OTP processes.
  • elixir_ale - Elixir access to hardware I/O interfaces such as GPIO, I2C, and SPI.
  • ex2ms - Translates Elixir functions to match specifications for use with ets.
  • ex_conf - Simple Elixir Configuration Management.
  • exprint - A printf / sprintf library for Elixir. It works as a wrapper for :io.format.
  • exprotobuf - Protocol Buffers in Elixir made easy.
  • exquisite - LINQ-like match_spec generation for Elixir.
  • figaro - Simple Elixir project configuration.
  • fsm - Finite state machine as a functional data structure.
  • libex_config - Helpers for accessing OTP application configuration.
  • message_pack - MessagePack Implementation for Elixir.
  • porcelain - Porcelain implements a saner approach to launching and communicating with external OS processes from Elixir.
  • radpath - A path library for Elixir inspired by Python path libraries.
  • signaturex - Simple key/secret based authentication for APIs.
  • spawndir - Spawns processes from the file system.

Resources

Various resources, such as books, websites and articles, for improving your Elixir development skills and knowledge.

Websites

Useful web and Elixir-related websites and newsletters.

Books

Fantastic books and e-books.

  • Programming Elixir - The book provides introduction to functional and concurrent programming with Elixir by Dave Thomas (2014).
  • Elixir in Action - A brief intro to the language followed by a more detailed look at building production-ready systems in Elixir by Saša Jurić (2014).
  • The Little Elixir & OTP Guidebook - A book for learning Elixir and OTP through small to medium-sized projects by Benjamin Tan Wei Hao (2014).
  • Études for Elixir - A collection of exercises to program in Elixir by J. David Eisenberg (2013).
  • Introducing Elixir - A gentle introduction to the language, with lots of code examples and exercises by Simon St. Laurent and J. David Eisenberg (2013).

Web Reading

General web-development-related reading materials.

Elixir Reading

Elixir-releated reading materials.

Screencasts

Cool video tutorials.

Other Awesome Lists

Other amazingly awesome lists can be found in the awesome-awesomeness list.

Contributing

Please see CONTRIBUTING for details.