Skip to content

A curated list of amazingly awesome Elixir and Erlang libraries, resources and shiny things. Updates:

Notifications You must be signed in to change notification settings

sofakingworld/awesome-elixir

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Awesome Elixir Build Status Awesome

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

Actors

Libraries and tools for working with actors and such.

  • exactor - Helpers for easier implementation of actors in Elixir.
  • exos - A Port Wrapper which forwards cast and call to a linked Port.
  • mon_handler - A minimal GenServer that monitors a given GenEvent handler.
  • pool_ring - Create a pool based on a hash ring.
  • poolboy - A hunky Erlang worker pool factory.
  • pooler - An OTP Process Pool Application.
  • sbroker - Sojourn-time based active queue management library.
  • workex - Backpressure and flow control in EVM processes.

Algorithms and Data structures

Libraries and implementations of algorithms and data structures.

  • array - An Elixir wrapper library for Erlang's array.
  • aruspex - Aruspex is a configurable constraint solver, written purely in Elixir.
  • bitmap - Pure Elixir implementation of bitmaps.
  • blocking_queue - BlockingQueue is a simple queue implemented as a GenServer. It has a fixed maximum length established when it is created.
  • bloomex - A pure Elixir implementation of Scalable Bloom Filters.
  • combination - Elixir library to generate combinations and permutations from Enumerable collection.
  • count_buffer - Buffer a large set of counters and flush periodically.
  • cuckoo - A pure Elixir implementation of Cuckoo Filters.
  • cuid - Collision-resistant ids optimized for horizontal scaling and sequential lookup performance, written in Elixir.
  • datastructures - A collection of protocols, implementations and wrappers to work with data structures.
  • dlist - Deque implementations in Elixir.
  • eastar - A* graph pathfinding in pure Elixir.
  • elistrix - A latency / fault tolerance library to help isolate your applications from an uncertain world of slow or failed services.
  • exconstructor - An Elixir library for generating struct constructors that handle external data with ease.
  • exfsm - Simple elixir library to define a static FSM.
  • exkad - A kademlia implementation in Elixir.
  • exmatrix - ExMatrix is a small library for working with matrices, originally developed for testing matrix multiplication in parallel.
  • ezcryptex - Thin layer on top of Cryptex.
  • fnv - Pure Elixir implementation of Fowler–Noll–Vo hash functions.
  • fsm - Finite state machine as a functional data structure.
  • fuse - This application implements a so-called circuit-breaker for Erlang.
  • graphmath - An Elixir library for performing 2D and 3D mathematics.
  • hash_ring_ex - A consistent hash-ring implemention for Elixir.
  • isaac - Isaac is an elixir module for ISAAC: a fast cryptographic random number generator.
  • key2value - Erlang 2-way Set Associative Map.
  • lfsr - Elixir implementation of a binary Galois Linear Feedback Shift Register.
  • loom - A CRDT library with δ-CRDT support.
  • luhn - Luhn algorithm in Elixir.
  • lz4 - LZ4 bindings for Erlang for fast data compressing.
  • memoize - A memoization macro (defmemo) for elixir using a genserver backing store.
  • minmaxlist - Elixir library extending Enum.min_by/2, Enum.max_by/2 and Enum.min_max_by/2 to return a list of results instead of just one.
  • mmath - A library for performaing math on number 'arrays' in binaries.
  • monadex - Upgrade your Elixir pipelines with monads.
  • murmur - A pure Elixir implementation of the non-cryptographic hash Murmur3.
  • natural_sort - Elixir natural sort implementation for lists of strings.
  • parallel_stream - A parallel stream implementation for Elixir.
  • paratize - Elixir library providing some handy parallel processing (execution) facilities that support configuring number of workers and timeout.
  • parex - Parallel Execute (Parex) is an Elixir module for executing multiple (slow) processes in parallel.
  • red_black_tree - Red-Black tree implementation in Elixir.
  • remodel - An Elixir presenter package used to transform map structures.
  • rendezvous - Implementation of the Rendezvous or Highest Random Weight (HRW) hashing algorithm in Elixir.
  • sfmt - SIMD-oriented Fast Mersenne Twister (SFMT) for Erlang.
  • sorted_set - Sorted Sets for Elixir.
  • structurez - A playground for data structures in Elixir.
  • supermemo - An Elixir implementation of the Supermemo 2 algorithm.
  • tfidf - An Elixir implementation of term frequency–inverse document frequency.
  • the_fuzz - Fuzzy string-matching algorithm implementations.
  • tinymt - Tiny Mersenne Twister (TinyMT) for Erlang.
  • trie - Erlang Trie Implementation.
  • witchcraft - Common algebraic structures and functions for Elixir.
  • zipper_tree - Variadic aritity tree with a zipper for Elixir.

Applications

Standalone applications.

  • Alher - Alexander is a rock-solid IRC bot written in Elixir with powerful plugins.
  • bpe - Business Process Engine in Erlang.
  • dragonfly_server - Elixir app to serve Dragonfly images.
  • Exon - A “mess manager” developed in Elixir and provides a simple API to manage & document your stuff.
  • majremind - A self-maintained database of your updated server which tells you which one needs to be updated.
  • medex - Medical Examination - application for register health check callbacks and represent their state via HTTP.
  • n2o - WebSocket Application Server.
  • Phoenix Trello - Trello tribute done in Elixir, Phoenix Framework, React and Redux.
  • poxa - Open Pusher implementation, compatible with Pusher libraries.
  • Queerlink - A simple yet efficient URL shortening service written in Elixir.
  • Sprint Poker - Online estimation tool for Agile teams, written using Elixir Lang, Phoenix Framework and React.
  • tty2048 - Terminal-based 2048 game written in Elixir.

Audio and Sounds

Libraries working with sounds and tones.

  • erlaudio - Erlang PortAudio bindings.
  • synthex - A signal synthesis library.

Authentication

Libraries for implementing authentications schemes.

  • aeacus - A simple configurable identity/password authentication module (Compatible with Ecto/Phoenix).
  • apache_passwd_md5 - Apache/APR Style Password Hashing.
  • aws_auth - AWS Signature Version 4 Signing Library for Elixir.
  • blackbook - All-in-one membership/authentication system for Elixir.
  • github_oauth - A simple github oauth library.
  • goth - OAuth 2.0 library for server to server applications via Google Cloud APIs.
  • guardian - An authentication framework for use with Elixir applications.
  • htpasswd - Apache httpasswd file reader/writer in Elixir.
  • mojoauth - MojoAuth implementation in Elixir.
  • oauth2 - An OAuth 2.0 client library for Elixir.
  • oauth2cli - Simple OAuth2 client written for Elixir.
  • oauth2ex - Another OAuth 2.0 client library for Elixir.
  • oauther - An OAuth 1.0 implementation for Elixir.
  • ueberauth - An Elixir Authentication System for Plug-based Web Applications.
  • ueberauth_facebook - Facebook OAuth2 Strategy for Überauth.
  • ueberauth_github - A GitHub strategy for Überauth.
  • ueberauth_google - A Google strategy for Überauth.
  • ueberauth_identity - A simple username/password strategy for Überauth.
  • ueberauth_slack - A Slack strategy for Überauth.
  • ueberauth_twitter - Twitter Strategy for Überauth.
  • xoauth2 - A simple XOAuth2 module for Elixir.

Authorization

Libraries for implementing Authorization handling.

  • canary - An authorization library for Elixir applications that restricts what resources the current user is allowed to access.
  • openmaize - Authentication and authorization library for Elixir.

Behaviours and Interfaces

Definitions how something should behave, like Interfaces from OOP-World

  • connection - Connection behaviour for connection processes. The API is superset of the GenServer API.
  • stockastic - Simple Elixir wrapper for the Stockfighter API.

Bittorrent

Sharing is caring with Elixir

  • tracker_request - Dealing with bittorrent tracker requests and responses.
  • wire - Encode and decode bittorrent peer wire protocol messages with Elixir.

Build Tools

Project build and automation tools.

  • active - Recompilation and Reloading on FileSystem changes.
  • coffee_rotor - Rotor plugin to compile CoffeeScript files.
  • dismake - Mix compiler running make.
  • edeliver - Deployment for Elixir and Erlang.
  • etude - Parallel computation coordination compiler for Erlang/Elixir.
  • ExMake - A modern, scriptable, dependency-based build tool loosely based on Make principles.
  • Exscript - Elixir escript library.
  • mad - Small and Fast Rebar Replacement.
  • pc - A rebar3 port compiler.
  • reaxt - React template into your Elixir application for server rendering.
  • rebar3_abnfc_plugin - Rebar3 abnfc compiler.
  • rebar3_asn1_compiler - Plugin for compiling ASN.1 modules with Rebar3.
  • rebar3_auto - Rebar3 plugin to auto compile and reload on file change.
  • rebar3_diameter_compiler - Compile diameter .dia files in rebar3 projects.
  • rebar3_eqc - A rebar3 plugin to enable the execution of Erlang QuickCheck properties.
  • rebar3_exunit - A plugin to run Elixir ExUnit tests from rebar3 build tool.
  • rebar3_idl_compiler - This is a plugin for compiling Erlang IDL files using Rebar3.
  • rebar3_live - Rebar3 live plugin.
  • rebar3_neotoma_plugin - Rebar3 neotoma (Parser Expression Grammar) compiler.
  • rebar3_protobuffs - rebar3 protobuffs provider using protobuffs from Basho.
  • rebar3_run - Run a release with one simple command.
  • rebar3_yang_plugin - Rebar3 yang compiler.
  • reltool_util - Erlang reltool utility functionality application.
  • relx - A release assembler for Erlang.
  • remix - Automatic recompilation of Mix code on file change.
  • rotor - Super-simple build system for Elixir.
  • sass_elixir - A sass plugin for Elixir projects.

Caching

Libraries for caching data.

  • con_cache - ConCache is an ETS based key/value storage.
  • elixir_locker - Locker is an Elixir wrapper for the locker Erlang library that provides some useful libraries that should make using locker a bit easier.
  • locker - Atomic distributed "check and set" for short-lived keys.
  • lru_cache - Simple LRU Cache, implemented with ets.
  • stash - A straightforward, fast, and user-friendly key/value store.

Cloud Infrastructure and Management

Applications, tools and libraries for your own cloud service.

  • aws - AWS clients for Elixir.
  • Cloudi - CloudI is for back-end server processing tasks that require soft-realtime transaction.
  • discovery - An OTP application for auto-discovering services with Consul.
  • erlcloud - Cloud Computing library for Erlang (Amazon EC2, S3, SQS, SimpleDB, Mechanical Turk, ELB).
  • ex_aws - AWS client. Currently supports DynamoDB and Kinesis.
  • fleet_api - A simple wrapper for the Fleet (CoreOS) API. Can be used with etcd tokens or via direct node URLs.
  • IElixir - Jupyter's kernel for Elixir programming language.
  • Kubex - Kubernetes client and integration for Elixir, written in pure Elixir.
  • nodefinder - Strategies for automatic node discovery in Erlang.
  • sidejob - Parallel worker and capacity limiting library for Erlang.
  • sidetask - SideTask is an alternative to Task.Supervisor using Basho's sidejob library with parallelism and capacity limiting.

Code Analysis

Libraries and tools for code base analysis, parsing, and manipulation.

  • belvedere - An example of CircleCI integration with Elixir.
  • coverex - Coverage Reports for Elixir.
  • credo - A static code analysis tool with a focus on code consistency and teaching Elixir.
  • dialyxir - Mix tasks to simplify use of Dialyzer in Elixir projects.
  • dogma - A code style linter for Elixir, powered by shame.
  • excoveralls - Coverage report tool for Elixir with coveralls.io integration.
  • exprof - A simple code profiler for Elixir, using eprof.

Command Line Applications

Anything helpful for building CLI applications.

  • anubis - Command-Line application framework for Elixir.
  • getopt - Command-line options parser for Erlang.
  • meld - Create global binaries from mix tasks.
  • progress_bar - Command-line progress bars and spinners.
  • table_rex - Generate configurable ASCII style tables for display.

Configuration

Libraries and tools working with configurations

  • configparser_ex - A simple Elixir parser for the same kind of files that Python's configparser library handles.
  • conform - Easy release configuration for Elixir apps.
  • dotenv - A port of dotenv to Elixir.
  • ex_conf - Simple Elixir Configuration Management.
  • figaro - Simple Elixir project configuration.
  • figaro_elixir - Environmental variables manager for Elixir.

Cryptography

Encrypting and decrypting data

  • cipher - Elixir crypto library to encrypt/decrypt arbitrary binaries.
  • cloak - Cloak makes it easy to use encryption with Ecto.
  • comeonin - Password authorization (bcrypt) library for Elixir.
  • elixir_tea - TEA implementation in Elixir.
  • ex_crypto - Elixir wrapper for Erlang crypto and public_key modules. Provides sensible defaults for many crypto functions to make them easier to use.
  • exgpg - Use gpg from Elixir.
  • pot - Erlang library for generating one time passwords compatible with Google Authenticator.
  • rsa - public_key cryptography wrapper for Elixir.
  • siphash-elixir - Elixir implementation of the SipHash hash family.
  • tea_crypto - Tiny Encryption Algorithm implementation.

CSV

Libraries and implementations working with CSV.

  • cesso - CSV handling library for Elixir.
  • csv - CSV Decoding and Encoding for Elixir.
  • csvlixir - A CSV reading/writing application for Elixir.
  • ex_csv - CSV for Elixir.

Date and Time

Libraries for working with dates and times.

  • block_timer - Macros to use :timer.apply_after and :timer.apply_interval with a block.
  • calendar - Calendar is a date and time library for Elixir.
  • chronos - An Elixir date/time library.
  • filtrex - A library for performing and validating complex SQL-like filters from a client (e.g. smart filters).
  • good_times - Expressive and easy to use datetime functions.
  • milliseconds - Simple library to work with milliseconds in Elixir.
  • moment - Parse, validate, manipulate, and display dates in Elixir.
  • quantum - Cron-like job scheduler for Elixir applications.
  • repeatex - Natural language parsing for repeating dates.
  • timex - Easy to use Date and Time modules for Elixir.
  • timex_interval - A date/time interval library for Elixir projects, based on Timex.
  • tzdata - The timezone database in Elixir.

Debugging

Libraries and tools for debugging code and applications.

  • beaker - Statistics and Metrics library for Elixir.
  • benchfella - Benchmarking tool for Elixir.
  • bmark - A benchmarking tool for Elixir.
  • booter - Boot an Elixir application, step by step.
  • dbg - Distributed tracing for Elixir.
  • eflame - Flame Graph profiler for Erlang.
  • eh - A tool to look up Elixir documentation from the command line.
  • elixometer - A light Elixir wrapper around exometer.
  • eper - Erlang performance and debugging tools.
  • erlang-metrics - A generic interface to different metrics systems in Erlang.
  • ether - Ether provides functionality to hook Elixir into the Erlang debugger.
  • exometer - Basic measurement objects and probe behavior in Erlang.
  • exrun - Distributed tracing for Elixir with rate limiting and simple macro-based interface.
  • quaff - The Debug module provides a simple helper interface for running Elixir code in the erlang graphical debugger.
  • visualixir - A process visualizer for remote BEAM nodes.

Documentation

Libraries and tools for creating documentation.

  • bureaucrat - Generate Phoenix API documentation from tests.
  • ex_doc - ExDoc is a tool to generate documentation for your Elixir projects.
  • ex_doc_dash - Formatter for ExDoc to generate docset documentation for use in Dash.app.
  • hexdocset - Convert hex doc to Dash.app's docset format.
  • inch-ci - Documentation badges for Ruby & Elixir.
  • maru_swagger - Add swagger compliant documentation to your maru API.

Domain-specific language

Specialized computer languages for a particular application domain.

  • graphql - An Elixir implementation of Facebook's GraphQL.

ECMAScript

Implementations working with JavaScript, JScript or ActionScript.

  • estree - A implementation of the SpiderMonkey Parser API in Elixir.

Email

Working with Email and stuff.

  • bamboo - Flexible and easy to use email for Elixir.
  • echo - A meta-notification system; Echo checks notification preferences & dispatches notifications.
  • gen_smtp - A generic Erlang SMTP server and client that can be extended via callback modules.
  • mail - An RFC2822 implementation in Elixir, built for composability.
  • mailer - A simple SMTP mailer.
  • mailibex - Library containing Email-related implementations in Elixir: dkim, spf, dmark, mimemail, smtp.
  • mailman - Mailman provides a clean way of defining mailers in your Elixir applications.

Embedded Systems

Embedded systems development.

  • bake - Configure, compile and share systems, toolchains and linux firmware.
  • nerves - A framework for writing embedded software in Elixir.

Encoding and Compression

Transforming data in different formats or compressing it.

  • huffman - Huffman encoding and decoding in Elixir.

Eventhandling

Sending/Emitting and receiving/handling Events in Elixir.

  • goldrush - Small, Fast event processing and monitoring for Erlang/OTP applications.
  • reaxive - Reaxive is a reactive event handling library, inspired by Elm and Reactive Extensions.

Examples and funny stuff

Example code and stuff too funny or curious not to mention.

  • butler_cage - A Butler plugin for showing silly photos of Nick Cage.
  • butler_tableflip - Flipping tables with butler.
  • dice - Roll the dice, in Elixir.
  • ex_iss - This package is for interfacing with the Open Notify API to information such as the ISS's current location, crew, and when it will pass over a location.
  • harakiri - Help applications kill themselves.
  • hello_phoenix - Application template for SPAs with Phoenix, React and Redux.
  • kaisuu - Watch Japan's Kanji Usage on Twitter in Realtime.
  • koans - Learn Elixir by using elixir-koans.
  • lolcat - This is the clone of busyloop/lolcat. But it does not support animation and some features of the original.
  • phoenix-flux-react - An experiment with Phoenix Channels, GenEvents, React and Flux.
  • portal - A shooting fault-tolerant doors for distributed portal data-transfer application in Elixir.
  • rollex - Elixir library using a Pratt Parser algorithm to calculate dice rolls.
  • rubix - A very simple (and barely-functioning) Ruby runner for Elixir.
  • stranger - Elixir Phoenix app to chat anonymously with a randomly chosen stranger https://hellostranger.xyz.
  • weather - A command line weather app built using Elixir.

Feeds

Libraries working with feeds like RSS or ATOM.

  • feeder - Parse RSS and Atom feeds.
  • feeder_ex - RSS feed parser. Simple wrapper for feeder.
  • feedme - RSS/Atom parser built on erlang's xmerl xml parser.

Files and Directories

Libraries and implementations for working with files and directories.

  • arc - Flexible file upload and attachment library for Elixir.
  • cassius - Monitor Linux file system events.
  • dir_walker - DirWalker lazily traverses one or more directory trees, depth first, returning successive file names.
  • elixgrep - A framework for doing Hadoop style Map/Reduce operations on collections of files.
  • ex_minimatch - Globbing paths without walking the tree!.
  • exfile - File upload handling, persistence, and processing in Elixir and Plug.
  • exfswatch - A file change watcher wrapper based on fs.
  • eye_drops - Configurable mix task to watch file changes and run the corresponding command.
  • fs - Erlang FileSystem Listener.
  • librex - Elixir library to convert office documents to other formats using LibreOffice.
  • Radpath - Path library for Elixir, inspired by Python's Enhpath.
  • zarex - Filename sanitization for Elixir.

Formulars

Handling web formulars and similar stuff.

  • forms - Erlang Business Documents Generator.

Framework Components

Standalone component from web development frameworks.

  • addict - User authentication for Phoenix Framework.
  • airbrake_plug - Report errors in your Plug stack or whatever to Airbrake.
  • ashes - A code generation tool for the Phoenix web framework.
  • blaguth - Basic Access Authentication in Plug applications.
  • cors_plug - An Elixir plug that adds CORS headers to requests and responds to preflight requests (OPTIONS).
  • corsica - Elixir library for dealing with CORS requests.
  • crudex - CRUD utilities for Phoenix and Ecto.
  • exdjango - A few elixir libraries for working with django.
  • exrecaptcha - Simple reCaptcha display/verify code for Elixir applications.
  • graphql_parser - An Elixir binding for libgraphqlparser.
  • http_router - HTTP Router with various macros to assist in developing your application and organizing your code.
  • mellon - An authentication module for Plug applications.
  • params - Use Ecto to enforce/validate parameters structure, akin to Rails' strong parameters.
  • passport - Passport provides authentication for Phoenix applications.
  • phoenix_ecto - Phoenix and Ecto integration.
  • phoenix_haml - Phoenix Template Engine for Haml.
  • phoenix_html - Phoenix.HTML functions for working with HTML strings and templates.
  • phoenix_html_sanitizer - HTML Sanitizer integration for Phoenix.
  • phoenix_linguist - A project that integrates Phoenix with Linguist, providing a plug and view helpers.
  • phoenix_live_reload - Provides live-reload functionality for Phoenix.
  • phoenix_pubsub_postgres - Postgresql PubSub adapter for Phoenix apps.
  • phoenix_pubsub_rabbitmq - RabbitMQ adapter for Phoenix's PubSub layer.
  • phoenix_pubsub_redis - The Redis PubSub adapter for the Phoenix framework.
  • phoenix_pubsub_vernemq - The VerneMQ MQTT pubsub adapter for the Phoenix framework.
  • phoenix_slime - Slim template support for Phoenix.
  • phoenix_token_auth - Token authentication solution for Phoenix. Useful for APIs or single page apps.
  • plug - A specification and conveniences for composable modules in between web applications.
  • plug_accesslog - Plug for writing access logs.
  • plug_auth - Collection of authentication-related plugs.
  • plug_cloudflare - Inspired by mod_cloudflare, this Elixir plug parses Cloudflares CF-Connecting-IP HTTP request header into Plug.Conn's remote_ip field.
  • plug_forward_peer - Very simple plug which reads X-Forwarded-For or Forwarded header according to RFC7239 and fill conn.remote_ip with the root client ip.
  • plug_graphql - Phoenix Plug integration for GraphQL Elixir.
  • plug_heartbeat - A plug for responding to heartbeat requests.
  • plug_jwt - Plug for JWT authentication.
  • plug_rails_cookie_session_store - Rails compatible Plug session store.
  • plug_redirect_https - Plug to redirect http requests to https requests behind a reverse proxy.
  • plug_require_header - Require and extract HTTP headers and handle missing ones.
  • plug_response_header - easy manipulation of HTTP response headers.
  • plug_ribbon - Injects a ribbon to your web application in the development environment.
  • plug_session_memcached - A very simple memcached session store for Elixir's plug.
  • plug_statsd - A plug for automatically sending timing and count metrics to statsd.
  • plugs - Collection of Plug middleware for web applications.
  • plugsnag - Bugsnag notifier for Elixir's plug.
  • raygun - Capture bugs and send them to Raygun.
  • resin - Resin is a plug that will add a configurable delay to every request that's passing through it, unless run in production.
  • revision_plate_ex - Plug application and middleware that serves endpoint returns application's REVISION.
  • scaffold - A mix task for creating new projects based on templates fetched from a Git-repo.
  • scrivener - Paginate your Ecto queries.
  • trailing_format_plug - An Elixir plug to support legacy APIs that use a rails-like trailing format.
  • webassembly - Web DSL for Elixir.
  • weebo - An XML-RPC parser/formatter for Elixir, with full support for datatype mapping.

Frameworks

Web development frameworks.

  • exelli - An Elli Elixir wrapper with some sugar sytnax goodies.
  • phoenix - Elixir Web Framework targeting full-featured, fault tolerant applications with realtime functionality.
  • placid - A REST toolkit for building highly-scalable and fault-tolerant HTTP APIs with Elixir.
  • rackla - API Gateways in Elixir.
  • relax - Simple Elixir implementation of a jsonapi.org server.
  • rest - Micro-REST framework with typed JSON.
  • sugar - Modular web framework for Elixir.
  • trot - An Elixir web micro-framework.

Games

Libraries for and implementations of games.

  • entice - A distributed Entity-Component-System framework, providing its own example MMORPG server.

Geolocation

Libraries for geocoding addresses and working with latitudes and longitudes.

  • distance_api_matrix - Provide distance and heading calculations via Google distance matrix api.
  • geo - A collection of GIS functions for Elixir.
  • geocalc - Calculate distance, bearing and more between latitude/longitude points.
  • geolix - MaxMind GeoIP2 database reader/decoder.

Hardware

Hardware related things like I/O interfaces and such.

  • elixir_ale - Elixir access to hardware I/O interfaces such as GPIO, I2C, and SPI.

HTTP

Libraries for working with HTTP and scraping websites.

  • bolt - Simple and fast http proxy.
  • cauldron - An HTTP/SPDY server as a library.
  • elli - Elli is a webserver you can run inside your Erlang application to expose an HTTP API.
  • exvcr - HTTP request/response recording library for Elixir, inspired by VCR.
  • fuzzyurl - An Elixir library for parsing, constructing, and wildcard-matching URLs. Also available for Ruby and JavaScript.
  • http - HTTP server for Elixir.
  • httpoison - Yet Another HTTP client for Elixir powered by hackney.
  • httpotion - Fancy HTTP client for Elixir, based on ibrowse.
  • httprot - HTTP client library.
  • lhttpc - A lightweight HTTP/1.1 client implemented in Erlang.
  • mochiweb - MochiWeb is an Erlang library for building lightweight HTTP servers.
  • plug_wait1 - Plug adapter for the wait1 protocol.
  • scrape - Scrape any website, article or RSS/Atom Feed with ease.
  • spell - Spell is a Web Application Messaging Protocol (WAMP) client implementation in Elixir.
  • tesla - HTTP client library, with support for middleware and multiple adapters.
  • uri_template - RFC6570 compliant URI template processor for Elixir.
  • web_socket - An exploration into a stand-alone library for Plug applications to easily adopt WebSockets.
  • webdriver - This is an implementation of the WebDriver protocol client. It currently supports PhantomJS, FireFox, ChromeDriver and remote webdriver servers (e.g. Selenium).
  • yuri - Simple struct for representing URIs.

Images

Libraries for working with and manipulating images.

  • bump - A BMP file writer in pure Elixir.
  • chunky_svg - A library for drawing things with SVG.
  • elixir_exif - Parse exif tags and thumbnail data from jpeg files.
  • exexif - Pure Elixir library to extract TIFF and EFIX metadata from jpeg files.
  • exfavicon - An Elixir library for discovering favicons.
  • identicon - An Elixir library for generating 5x5 identicons.
  • imagineer - Image parsing in Elixir.
  • imgex - Unofficial client library for generating imgix URLs in Elixir.
  • mogrify - An Elixir wrapper for ImageMagick command line.
  • png - A pure Erlang library for creating PNG images. It can currently create 8 and 16 bit RGB, RGB with alpha, indexed, grayscale and grayscale with alpha images.

JSON

Libraries and implementations working with JSON.

  • exjson - JSON parser and generator in Elixir.
  • exjsx - JSON for Elixir, based on jsx.
  • ja_serializer - JSONAPI.org Serialization in Elixir.
  • jazz - Yet another library to handle JSON in Elixir.
  • joken - Encodes and decodes JSON Web Tokens.
  • jose - JSON Object Signing and Encryption (JOSE) for Erlang and Elixir.
  • json - Native JSON library for Elixir.
  • json_pointer - Implementation of RFC 6901 which defines a string syntax for identifying a specific value within a JSON document.
  • json_web_token_ex - An Elixir implementation of the JSON Web Token (JWT) Standards Track (RFC 7519).
  • jsonapi - A project that will render your data models into JSONAPI Documents.
  • jsx - An Erlang application for consuming, producing, and manipulating json.
  • jsxn - jsx but with maps.
  • jwtex - A library to encode and decode JWT tokens.
  • poison - Poison is a new JSON library for Elixir focusing on wicked-fast speed without sacrificing simplicity, completeness, or correctness.
  • world_json - topojson country and state/province collections for elixir/erlang.

Languages

Languages built on top of Elixir.

  • lighthouse_scheme - A small Lisp-like language and interactive REPL, built in Elixir.

Lexical analysis

All about lexical analyser, lexer, scanner, tokenizer or compiler.

  • elixir_script - The goal is to convert a subset (or full set) of Elixir code to JavaScript.
  • ex_abnf - Parser for ABNF Grammars in Elixir.
  • lex_luthor - LexLuthor is a Lexer in Elixir which uses macros to generate a reusable lexers.

Logging

Logging infos and messages.

  • exsentry - Error logging to Sentry.
  • gelf_logger - A Logger backend that will generate Graylog Extended Log Format (GELF) messages.
  • honeybadger - Error logging to Honeybadger.
  • json_logger - JSON Logger is a logger backend that outputs elixir logs in JSON format.
  • lager - A logging framework for Erlang/OTP by basho.com.
  • lager_logger - A lager backend that forwards all log messages to Elixir's Logger.
  • logfmt - Logfmt is a module for encoding and decoding logfmt-style log lines.
  • logger_logstash_backend - A backend for the Elixir Logger that will send logs to the Logstash UDP input.
  • metrix - Log custom app metrics to stdout for use by Librato and other downstream processors.
  • mstore - MStore is a experimental metric store build in erlang, the primary functions are open, new, get and put.
  • raven - Elixir client for Sentry.
  • rogger - Elixir logger to publish log messages in RabbitMQ.
  • rollbax - Exception tracking and logging to Rollbar.
  • syslog - Erlang port driver for interacting with syslog via syslog(3).

Macros

Macros for faster and easier development. Sugar for your code.

  • anaphora - Anaphora is the anaphoric macro collection for Elixir. An anaphoric macro is one that deliberately captures a variable (typically it) from forms supplied to the macro.
  • apix - Simple convention and DSL for transformation of elixir functions to an API for later documentation and or validation.
  • guardsafe - Macros expanding into code that can be safely used in guard clauses.
  • happy - Happy path programming, alternative to elixir with form.
  • kwfuns - Macros to create functions with syntax based keyword parameters with default values.
  • lineo - parse transform for accurate line numbers.
  • mdef - Easily define multiple function heads in Elixir.
  • ok_jose - Pipe elixir functions that match {:ok,_}, {:error,_} tuples or custom patterns.
  • pattern_tap - Macro for tapping into a pattern match while using the pipe operator.
  • pipe_here - Easily pipe values into any argument position.
  • pipes - Macros for more flexible composition with the Elixir Pipe operator.
  • rebind - rebind parse transform for Erlang.
  • rulex - Simple rule handler using Elixir pattern matching.

Markdown

Libraries and tools working with Markdown and such.

  • cmark - Elixir NIF for CommonMark (in C), a parser following the CommonMark spec.
  • discount - Elixir NIF for discount, a Markdown parser.
  • earmark - Markdown parser for Elixir.
  • Markdown - Implemented entirely as a NIF binding to the Hoedown library.
  • Pandex - Lightweight Elixir wrapper for Pandoc. Converts Markdown, CommonMark, HTML, Latex, HTML, HTML5, opendocument, rtf, texttile, asciidoc to each other.

Miscellaneous

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

  • address_us - Library for parsing US Addresses into their individual parts.
  • Apex - Awesome Print for Elixir.
  • charm - Use ANSI terminal characters to write colors and cursor positions.
  • Countries - Countries is a collection of all sorts of useful information for every country in the ISO 3166 standard.
  • dye - A library for dyeing your terminal output.
  • dynamic_compile - Compile and load Erlang modules from string input.
  • erlang_term - Provide the in-memory size of Erlang terms, ignoring where these are stored.
  • ex2ms - Translates Elixir functions to match specifications for use with ets.
  • ex_rated - Simple and flexible rate-limiting for API's or anything.
  • exlibris - A collection of random library functions.
  • expool - A small process pooling library for parallel tasks in Elixir.
  • exprint - A printf / sprintf library for Elixir, works as a wrapper for :io.format.
  • exquisite - LINQ-like match_spec generation for Elixir.
  • exsync - Yet another Elixir reloader.
  • funnel - Streaming Elixir API built upon ElasticSearch's percolation.
  • gimei_ex - Elixir port of gimei library.
  • growl - Simple wrapper for growl, the notification system for OSX.
  • html_entities - Elixir module for decoding HTML entities in a string.
  • huex - Elixir client for Philips Hue connected light bulbs.
  • keys1value - Erlang set associative map for key lists.
  • mixstar - MixStar starred GitHub repository that depends on your project.
  • netrc - Reads netrc files implemented in Elixir.
  • pact - Better dependency injection in Elixir for cleaner code and testing.
  • porcelain - Porcelain implements a saner approach to launching and communicating with external OS processes from Elixir.
  • presentex - Elixir to HTML/JavaScript based presentation framework.
  • ratx - Rate limiter and overload protection for erlang application.
  • reprise - Simplified module reloader for Elixir.
  • spawndir - Spawns processes from the file system.
  • url_unroller - Simple URL unroller (un-shortener) in Elixir.

Native Implemented Functions

Tools and libraries working with Erlang NIF.

  • nifty - Helper script for setting up the boilerplate required when writing a NIF.
  • Rustler - Library for writing NIFs for Erlang or Elixir safely in Rust. No segfaults.

Natural Language Processing (NLP)

Tools and libraries that work with human (natural) languages.

  • gibran - Gibran is an Elixir port of WordsCounted, a natural language processor that extracts useful statistics from text.

Networking

Libraries and tools for using network related stuff.

  • chatty - A basic IRC client that is most useful for writing a bot.
  • eio - Elixir server of engine.io.
  • ejabberd - Robust, ubiquitous and massively scalable Jabber/XMPP Instant Messaging platform.
  • ExIrc - IRC client adapter for Elixir projects.
  • ExPcap - PCAP parser written in Elixir.
  • Guri - Automate tasks using chat messages.
  • hedwig - XMPP Client/Bot Framework for Elixir.
  • kaguya - A small, powerful, and modular IRC bot.
  • pool - Socket acceptor pool for Elixir.
  • reagent - reagent is a socket acceptor pool for Elixir.
  • slacker - A bot library for the Slack chat service.
  • socket - Socket wrapping for Elixir.
  • sshex - Simple SSH helpers for Elixir.
  • wifi - Various utility functions for working with the local Wifi network in Elixir.
  • wpa_supplicant - Elixir interface to the wpa_supplicant.
  • yocingo - Create your own Telegram Bot.
  • yodel - Extensible Messaging & Presence Protocol (XMPP) client in Elixir.

Office

Libraries for working with office suite documents.

  • excellent - An OpenXL (Excel 2000) Parser for Elixir.

ORM and Datamapping

Libraries that implement object-relational mapping or datamapping techniques.

  • amnesia - Mnesia wrapper for Elixir.
  • arc_ecto - Arc.Ecto provides an integration with Arc and Ecto.
  • atlas - Object Relational Mapper for Elixir.
  • boltun - Transforms notifications from the Postgres LISTEN/NOTIFY mechanism into callback execution.
  • caylir - Cayley driver for Elixir.
  • comeonin_ecto_password - Ecto custom type for storing encrypted password using Comeonin.
  • couchdb_connector - A connector for CouchDB, the Erlang-based, JSON document database.
  • craterl - Erlang client for crate.
  • database_url - Parse database URL and return keyword list for use with Ecto.
  • datomex - Elixir driver for the Datomic REST API.
  • dexts - Disk Elixir Terms Storage, dest wrapper.
  • diver - A HBase driver for Erlang/Elixir using Jinterface and the Asynchbase Java client to query the database.
  • dproto - Protocols for DalmatinerDB.
  • dqe - DalmatinerDB query engine.
  • ecto - A database wrapper and language integrated query for Elixir.
  • ecto_enum - Ecto extension to support enums in models.
  • ecto_hstore - Ecto.Hstore adds Postgres Hstore compatibility to Ecto.
  • ecto_lazy_float - Ecto.LazyFloat - An Ecto.Float that accepts binary and integers.
  • ecto_migrate - Ecto auto migration library. It allows to generate and run migrations for initial and update migrations.
  • ecto_ordered - Ecto extension for ordered models.
  • ecto_validation_case - Simplify your Ecto model validation tests. Loosely inspired by shoulda matchers, but simpler.
  • ectophile - Ecto extension to instantly support file uploads in models.
  • elastix - A simple Elastic REST client written in Elixir.
  • eredis - Erlang Redis client.
  • erlastic_search - An Erlang app for communicating with Elastic Search's rest interface.
  • esqlite - Erlang NIF for sqlite.
  • ets_map - An Elixir package that provides a Map-like interface (Map/Access/Enumerable/Collectable) backed by an ETS table.
  • ex_bitcask - Elixir wrapper of Basho's Bitcask Key/Value store.
  • exleveldb - Elixir wrapper around Basho's eleveldb module for LevelDB.
  • exnumerator - Elixir enumerable type definition in a simple way to be used with any database.
  • exredis - Redis client for Elixir.
  • exseed - An Elixir library that provides a simple DSL for seeding databases through Ecto.
  • exts - Elixir Terms Storage, ets wrapper.
  • hstore - Hstore support for Postgrex.
  • inquisitor - Composable query builder for Ecto.
  • instream - InfluxDB driver for Elixir.
  • isn - Ecto types for the postgreSQL isn extension.
  • kalecto - Glue between Kalends and Ecto for saving dates, times and datetimes.
  • kst - Erlang Abstract Term Database.
  • level - Level for Elixir implements various helper functions and data types for working with Googles Level data store.
  • mariaex - MariaDB/MySQL driver for Elixir.
  • moebius - A functional query tool for Elixir and PostgreSQL.
  • mongo - MongoDB driver for Elixir.
  • mongodb - MongoDB driver for Elixir.
  • mysql - MySQL/OTP – MySQL driver for Erlang/OTP.
  • mysqlex - An Ecto-compatible wrapper around the mysql-otp library.
  • postgrex - PostgreSQL driver for Elixir.
  • red - Persist relationships between objects in Redis, in a graph-like way.
  • redo - Heroku's pipelining redis client for erlang.
  • rethinkdb - Rethinkdb client in pure Elixir using JSON protocol.
  • riak - A Riak client written in Elixir.
  • sql_dust - Generate (complex) SQL queries using magical Elixir SQL dust.
  • sqlite_ecto - SQLite3 adapter for Ecto.
  • sqlitex - An Elixir wrapper around esqlite. Allows access to sqlite3 databases.
  • ssdb_elixir - ssdb client for Elixir, with focus on performance.
  • tds - MSSQL / TDS Database driver for Elixir.
  • tds_ecto - MSSQL / TDS Adapter for Ecto.
  • timex_ecto - An adapter for using Timex DateTimes with Ecto.
  • tirexs - An Elixir flavored DSL for building JSON based requests to Elasticsearch engine.
  • udpflux - An opinionated InfluxDB UDP only client.
  • yar - Yet another Redis client for Elixir.

OTP

Libraries for working with OTP related things.

  • core - Library for selective receive OTP processes.
  • erlexec - Execute and control OS processes from Erlang/OTP.
  • immortal - Immortal is a small collection of helper modules intended to make it easier to build a fault-tolerant OTP application.
  • libex_config - Helpers for accessing OTP application configuration.

Package Management

Libraries and tools for package and dependency management.

  • Hex - A package manager for the Erlang ecosystem.
  • rebar3_hex - Hex.pm plugin for rebar3.

PDF

Libraries and software for working with PDF files.

  • gutenex - Native PDF generation for Elixir.
  • pdf2htmlex - Convert PDF docs to beautiful HTML files without losing text or format.

Protocols

Special protocol and format libraries.

  • elixir_radius - RADIUS Protocol on Elixir.
  • ex_hl7 - Health Level 7 (HL7) is a protocol designed to model and transfer health-related data electronically.
  • ex_marshal - Ruby Marshal format implemented in Elixir.
  • exprotobuf - Protocol Buffers in Elixir, made easy.
  • message_pack - MessagePack Implementation for Elixir.
  • msgpax - MessagePack (de)serializer implementation for Elixir.
  • riffed - Provides idiomatic Elixir bindings for Apache Thrift.

Queue

Libraries for working with event and task queues.

  • adap - Create a data stream across your information systems to query, augment and transform data according to Elixir matching rules.
  • amqp - Simple Elixir wrapper for the Erlang RabbitMQ client, based on Langohr.
  • dbus - A dumb message bus for sharing data between microservices decoupled using Redis.
  • elixir_nsq - NSQ client library for Elixir.
  • elixir_talk - An Elixir client for beanstalkd.
  • enm - enm is an Erlang port driver that wraps the nanomsg C library.
  • exdisque - Elixir client for Disque, an in-memory, distributed job queue.
  • exq - Job processing library for Elixir - compatible with Resque/Sidekiq.
  • exrabbit - RabbitMQ bindings and DSL for Elixir.
  • heapq - A Heap-based Priority Queue Implementation in Elixir.
  • honeydew - Honeydew is a worker pool library for Elixir.
  • hulaaki - An MQTT 3.1.1 client library written in Elixir.
  • kafka_ex - Kafka client library for Elixir.
  • mqs - RabbitMQ client library, routing keys, RPC over MQ and other stuff.
  • pqueue - Erlang Priority Queue Implementation.
  • queuex - Priority Queue with multiple backends.
  • stream_weaver - Library for working with streams.
  • toniq - Simple and reliable background job library for Elixir.
  • work_queue - Simple implementation of the hungry-consumer model in Elixir.

Release Management

Libraries and tools for release management.

  • ansible-elixir-stack - 1-command setup & deploys to servers, with first-class support for Phoenix apps.
  • bottler - Bottler is a collection of tools that aims to help you generate releases, ship them to your servers, install them there, and get them live on production.
  • changex - Automated changelog generation from GIT logs.
  • exdm - Deploy Elixir applications via mix tasks.
  • exrm - Automatically generate a release for your Elixir project.
  • exrm_heroku - Publish your Elixir releases to Heroku with ease.
  • exrm_rpm - Create a RPM for your Elixir release with ease.
  • heroku-buildpack-elixir - Heroku buildpack to deploy Elixir apps to Heroku.
  • relex - Erlang/Elixir Release Assembler.
  • relisa - Fast, simple, and composable deployment library for Elixir.

REST and API

Libraries and web tools for developing REST-ful APIs.

  • detergent - An emulsifying Erlang SOAP library.
  • detergentex - Elixir binding to Detergent erlang library used to call WSDL/SOAP Services.
  • maru - Elixir copy of grape for creating REST-like APIs.
  • mazurka - hypermedia api toolkit.
  • signaturex - Simple key/secret based authentication for APIs.
  • urna - Urna is a simple DSL around cauldron to implement REST services.

Security

Libraries and tools regarding security.

  • safetybox - Security oriented helper functions for Elixir.
  • ssl_verify_hostname - Erlang library for certificate hostname validation based on RFC 6125.

Static Page Generation

Tools and libraries for generating static websites and content.

  • coil - Minimalistic static content engine.
  • obelisk - Static blog and website generator.

Statistics

Libraries around the topic statistics.

  • descriptive_statistics - Descriptive Statistics for Elixir.
  • mtx - MTX supports front-end API for tracking Historgram, Meter, Counter, Gauge, Timing keys.
  • statistics - Some basic statistical functions for Elixir.
  • wizard - Math and statistics functions for Elixir.

Templating

Libraries parsing and helping with templates

  • bbmustache - Binary pattern match Based Mustache template engine for Erlang/OTP.
  • eml - Library for writing and manipulating (HTML) markup in Elixir.
  • mustache - Mustache templates for Elixir.
  • mustachex - Mustache for Elixir - Logic-less templates.
  • templates - Helper library for adding templating to web applications.

Testing

Libraries for testing codebases and generating test data.

  • amrita - A polite, well mannered and thoroughly upstanding testing framework for Elixir.
  • blacksmith - Data generation framework for Elixir.
  • blitzy - A simple HTTP load tester in Elixir.
  • cobertura_cover - Writes a coverage.xml from mix test --cover file compatible with Jenkins' Cobertura plugin.
  • ecto_it - Ecto plugin with default configuration for repos for testing different ecto plugins with databases.
  • espec - BDD test framework for Elixir inspired by RSpec.
  • espec_phoenix - ESpec for Phoenix web framework.
  • ex_machina - Flexible test factories for Elixir. Works out of the box with Ecto and Ecto associations.
  • ex_parameterized - Simple macro for parametarized testing.
  • ex_spec - BDD-like syntax for ExUnit.
  • ex_unit_fixtures - A library for defining modular dependencies for ExUnit tests.
  • excheck - Property-based testing library for Elixir (QuickCheck style).
  • factory_girl_elixir - Minimal implementation of Ruby's factory_girl in Elixir.
  • faker - Faker is a pure Elixir library for generating fake data.
  • fqc - FiFo Quickcheck helper, a set of helpers for running EQC.
  • gimei - Gimei is a pure Elixir library for generating Japanese fake data.
  • hound - Elixir library for writing integration tests and browser automation.
  • hypermock - HTTP request stubbing and expectation Elixir library.
  • katt - KATT (Klarna API Testing Tool) is an HTTP-based API testing tool for Erlang.
  • kovacs - A simple ExUnit test runner.
  • meck - A mocking library for Erlang.
  • mix_erlang_tasks - Common tasks for Erlang projects that use Mix.
  • mix_eunit - A Mix task to execute eunit tests.
  • mix_test_watch - Automatically run your Elixir project's tests each time you save a file.
  • mixunit - An EUnit task for Mix based projects.
  • mock - Mocking library for the Elixir language.
  • pavlov - BDD framework for your Elixir projects.
  • plug_test_helpers - A simple testing DSL for Plugs.
  • ponos - Ponos is an Erlang application that exposes a flexible load generator API.
  • power_assert - Power Assert in Elixir. Shows evaluation results each expression.
  • proper - PropEr (PROPerty-based testing tool for ERlang) is a QuickCheck-inspired open-source property-based testing tool for Erlang.
  • shouldi - Elixir testing libraries with nested contexts, superior readability, and ease of use.
  • tuco_tuco - TucoTuco helps you test your web application by running a web browser and simulating user interaction with your application.
  • white_bread - Story based BDD in Elixir using the gherkin syntax.

Text and Numbers

Libraries for parsing and manipulating text and numbers.

  • base58 - Base58 encoding/decoding for Elixir.
  • base58check - Base58Check encoding/decoding for Bitcoin.
  • base62 - Base62 encoder/decoder in pure Elixir.
  • bencode - A Bencode encoder and decoder for Elixir. The decoder will return the checksum value of the info dictionary, if an info dictionary was found in the input.
  • bencoder - bencode in Elixir.
  • brcpfcnpj - Number format and Validate, to the documents brazilians (CPF/CNPJ).
  • calliope - An Elixir HAML parser.
  • chinese_translation - Translate between traditional chinese and simplified chinese based on wikipedia data, and translate chinese words/characters to pinyin (or slug with or without tone).
  • cidr - Classless Inter-Domain Routing (CIDR) for Elixir.
  • cirru_parser - Cirru Parser in Elixir.
  • cldr - cldr is a library to use information from CLDR data.
  • colorful - Elixir macros to decorate characters on CUI.
  • colors - Colors util written in Elixir.
  • convertat - An Elixir library for converting from and to arbitrary bases.
  • curtail - HTML tag-safe string truncation.
  • custom_base - Allow you to make custom base conversion in Elixir.
  • decimal - Arbitrary precision decimal arithmetic for Elixir.
  • dicer - A dice roller expression evaluator.
  • eden - EDN encoder/decoder for Elixir.
  • elixilorem - Lorem Ipsum generator for Elixir.
  • elixir-range-extras - Elixir range utilities: constant-time random sampling and set operations.
  • elixir_bencode - Bencode implemented in Elixir.
  • erldn - EDN format parser for the Erlang platform.
  • event_source_encoder - Encode data into EventSource compliant data.
  • ex_brace_expansion - Brace expansion, as known from sh/bash, in Elixir.
  • ex_rfc3966 - Elixir Tel URI parser compatible with RFC3966.
  • ex_rfc3986 - RFC3986 URI/URL parser.
  • exmoji - Emoji encoding Swiss Army knife for Elixir/Erlang.
  • expletive - Profanity filter library for Elixir.
  • expr - An Elixir library for parsing and evaluating mathematical expressions.
  • faust - Markov Text Generator for Elixir.
  • haikunator - Generate Heroku-like memorable random names to use in your apps or anywhere else.
  • hashids - Hashids lets you obfuscate numerical identifiers via reversible mapping.
  • hexate - Simple module for Hex encoding / decoding in Elixir.
  • html_sanitize_ex - HTML sanitizer for Elixir.
  • inet_cidr - Classless Inter-Domain Routing (CIDR) for Elixir that is compatible with :inet and supports both IPv4 and IPv6.
  • inflex - An Inflector library for Elixir.
  • kitsune - An Elixir library for transforming the representation of data.
  • ltsvex - LTSV parser implementation in Elixir.
  • mbcs - Wrapper for erlang-mbcs. This module provides functions for character encoding conversion.
  • mimetype_parser - parse mimetypes.
  • monetized - A lightweight solution for handling and storing money.
  • money - Working with Money safer, easier, and fun, interpretation of the Fowler's Money pattern.
  • mt940 - MT940 (standard structured SWIFT Customer Statement message) parser for Elixir.
  • neotomex - A PEG implementation with a pleasant Elixir DSL.
  • number - Number is a pretentiously-named Elixir library which provides functions to convert numbers into a variety of different formats.
  • palette - A handy library for colouring strings in Elixir.
  • pinyin - Chinese Pinyin lib for Elixir.
  • porterstemmer - Porter Stemmer in Elixir.
  • pretty_hex - A binary hex dumping library in Elixir.
  • quickrand - Quick Random Number Generation.
  • ref_inspector - Referer parser library in Elixir. Fetching info from URLs.
  • secure_random - Convenience library for random base64 strings modeled after my love for Ruby's SecureRandom.
  • simetric - String similarity metrics for Elixir.
  • slime - An Elixir library for rendering slim-like templates.
  • slugger - Slugger can generate slugs from given strings that can be used in URLs or file names.
  • tau - Provide the famous mathematical constant, tau, τ = 6.2831....
  • tomlex - A TOML parser for Elixir.
  • ua_inspector - User agent parser library like piwik/device-detector.
  • unit_fun - Attempt to add units to numbers in elixir to give some added type saftey when dealing with numeric quantities.
  • uuid - UUID generator and utilities for Elixir.
  • uuid_erl - Erlang Native UUID Generation.

Third Party APIs

Libraries for accessing third party APIs.

  • airbrake - An Elixir notifier for the Airbrake.
  • airbrakex - Elixir client for the Airbrake service.
  • amazon_product_advertising_client - Amazon Product Advertising API client for Elixir.
  • apns - Apple Push Notifications Service client library for elixir.
  • asanaficator - Simple Elixir wrapper for the Asana API. Based on Tentacat.
  • assembla_api - Assembla API client for Elixir.
  • balanced - Balanced API Client for Elixir.
  • bandwidth - An Elixir client library for the Bandwidth Application Platform.
  • bing_translator - A simple Elixir interface to Bing's translation API.
  • bitpay - Elixir core library for connecting to bitpay.com.
  • cleverbot - Simple implementation of the Cleverbot API in Elixir.
  • coinbase - A unofficial Coinbase API v1 Client.
  • commerce_billing - A payment-processing library for Elixir that supports multiple gateways (e.g. Bogus & Stripe).
  • currently - A tool to display cards currently assigns on Trello.
  • digoc - Digital Ocean API v2 Elixir Client.
  • docker - Elixir client for the Docker Remote API.
  • dogstatsd - An Elixir client for DogStatsd.
  • dpd_client - An API client for the DPD service.
  • dropbox - Dropbox Core API client for Elixir.
  • edgarex - Elixir interface for fetching SEC filings from EDGAR.
  • elixir_authorizenet - Unofficial client for the Authorize.Net merchant API.
  • elixir_ipfs_api - IPFS (InterPlanetary File System) API client for Elixir.
  • elixtagram - Instagram API client for Elixir.
  • everex - Evernote API client for Elixir.
  • everyoneapi - API Client for EveryoneAPI.com.
  • ex_omegle - A minimal Omegle chat client library for Elixir.
  • ex_statsd - A statsd client implementation for Elixir.
  • ex_twilio - Twilio API client for Elixir.
  • ex_twiml - Generate TwiML for your Twilio integration, right inside Elixir.
  • exdesk - Elixir library for the Desk.com API.
  • exgenius - Elixir library for the (undocumented) Rap Genius API.
  • exgravatar - An Elixir module for generating Gravatar URLs.
  • exgrid - interact with Sendgrid's API.
  • exjira - JIRA client library for Elixir.
  • exlingr - A Lingr client module.
  • exstagram - Elixir library for Instagram v1 API.
  • extripe - Feature complete Stripe API wrapper.
  • extwitter - Twitter client library for Elixir.
  • exurban - Elixir wrapper for UrbanAirship API.
  • facebook - Facebook Graph API Wrapper written in Elixir.
  • feedlex - Feedly RSS reader client for Elixir.
  • fluent_client - Minimalistic fluentd client.
  • forcex - Elixir library for the Force.com REST API.
  • forecast_io - Simple wrapper for Forecast.IO API.
  • gcmex - Google Cloud Messaging client library for elixir.
  • google_sheets - Elixir library for fetching and polling Google spreadsheet data in CSV format.
  • hexoku - Heroku API client and Heroku Mix tasks for Elixir projects.
  • instrumental - An Elixir client for Instrumental.
  • keenex - A Keen.io API Client.
  • link_shrinkex - Elixir library for creating short URLs using Google's URL Shortener API.
  • m2x - Elixir client for the AT&T M2X, a cloud-based fully managed time-series data storage service for network connected machine-to-machine (M2M) devices and the Internet of Things (IoT). (Erlang Version).
  • mailchimp - A basic Elixir wrapper for version 3 of the MailChimp API.
  • mailgun - Elixir Mailgun Client.
  • mandrill - A Mandrill wrapper for Elixir.
  • marvel - CLI and Elixir API Client for the Marvel API.
  • mixpanel - An Elixir client for the Mixpanel HTTP API.
  • mixpanel_data_client - Client for interacting with the Mixpanel Data Export API.
  • mmExchangeRate - A simple exchange rate checker and calculator based on Central Bank of Myanmar Api.
  • nadia - Telegram Bot API Wrapper written in Elixir.
  • nest - An Elixir library for using the Nest API, allowing integration with Nest Thermostats and other Nest devices.
  • omise - Omise client library for Elixir.
  • opbeat - Elixir client for Opbeat.
  • pagexduty - A Pagerduty client for Elixir.
  • parse_client - Elixir client for the parse.com REST API.
  • parsex - ParsEx is an Elixir HTTP Client for communicating with Parse.com's Restful API.
  • pathway - An Erlang/Elixir client for the Trak.io REST API.
  • peatio_client - Peatio exchange project compatible API for Elixir.
  • pocketex - Pocketex is an Elixir client for the Pocket read later service getpocket.com.
  • pusher - Elixir library to access the Pusher REST API.
  • qiita_ex - A Qiita API v2 Interface for Elixir.
  • qiniu - Qiniu SDK for Elixir.
  • reap - Reap is a simple Elixir library for working with the refheap API.
  • reddhl - An headline and link puller for Reddit and its various subreddits.
  • redtube - Redtube API Wrapper written in Elixir.
  • reporter - Reporter is simple reporting App reviews library. Support AppStore and GooglePlay.
  • riemann - A Riemann client for Elixir.
  • simplex - An Elixir library for interacting with the Amazon SimpleDB API.
  • slack - Slack real time messaging client in Elixir.
  • statix - Expose app metrics in the StatsD protocol.
  • stripe - An Elixir Library wrapping Stripe's API.
  • tagplay - Elixir client for Tagplay API.
  • telephonist - Elixir state machines for Twilio calls.
  • tentacat - Simple Elixir wrapper for the GitHub API.
  • traitify_elixir - An Elixir client library for the Traitify Developer's API.
  • unsplash-elixir - An Elixir library for Unsplash.
  • xe - Real time conversion for currencies.
  • zanox - Zanox API.

Translations and Internationalizations

Libraries providing translations or internationalizations.

  • ecto_gettext - Library for localization Ecto validation errors with using Gettext.
  • exromaji - A Elixir library for translating between hiragana, katakana and romaji.
  • linguist - Elixir Internationalization library.
  • parabaikElixirConverter - ParabaikElixirConverter is just a Elixir version of Parabaik converter. It can convert from Unicode to Zawgyi-One and Zawgyi-One to Unicode vice versa.

Utilities

Utilities libraries.

  • ar2ecto - Ar2ecto is a set of mix tasks to help you migrate from ActiveRecord to Ecto.
  • crutches - Utility library for Elixir, designed to complement the standard library bundled with the language.
  • erlsh - Family of functions and ports involving interacting with the system shell, paths and external programs.
  • erlware_commons - Additional standard library for Erlang.
  • exjprop - Elixir library for reading Java properties files from various sources.
  • fitex - FitEx is a Macro-Module which provides a bit of sugar for function definitions.
  • global - Wrapper of the Erlang :global module.
  • mandrake - Mandrake is a functional programming library that bring something else magic in elixir.
  • plasm - Plasm is Ecto's composable query multitool, containing higher-level functions such as .count, .random, .first, .last, .find, .inserted_before, .inserted_after, etc.
  • pubsub - A Publish-Subscribe utility library that implements a pub-sub mechanism to ease the burden of communication on the business logic processes.
  • quark - A library for common functional programming idioms: combinators, currying, and partial application.
  • sips_downloader - Elixir module for downloading the ElixirSips episodes and all other files.

Validations

Libraries and implementations for validation of data.

  • avex - Awesome validations for Elixir.
  • shape - A data validation library for Elixir based on Prismatic Scheme.
  • uk_postcode - UK postcode parsing and validation library.
  • vex - An extensible data validation library for Elixir.
  • voorhees - A library for validating JSON responses.

Version Control

Working with version control like git, mercury, subversion ...

  • gitex - Elixir implementation of the Git object storage, but with the goal to implement the same semantic with other storage and topics.

XML

Libraries and implementations working with XML.

  • erlsom - Erlsom is an Erlang library to parse (and generate) XML documents.
  • exmerl - Elixir wrapper for xmerl.
  • exml - Most simple Elixir wrapper for xmerl xpath.
  • exquery - A library for parsing HTML and querying elements within.
  • floki - A simple HTML parser that enables searching using CSS like selectors.
  • quinn - XML parser for Elixir.
  • spill - Parse and reformat XML into spill structure.
  • sweet_xml - Query XML simply and effectively.
  • xml_builder - Elixir library for generating xml.
  • xmlrpc - Library for encoding and decoding XML-RPC for clients and servers.

YAML

Libraries and implementations working with YAML.

  • fast_yaml - Fast YAML is an Erlang wrapper for libyaml "C" library.
  • yamerl - YAML 1.2 parser in Erlang.
  • yaml_elixir - Yaml parser for Elixir based on native Erlang implementation.
  • yomel - libyaml interface for Elixir.

Resources

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

Books

Fantastic books and e-books.

  • Elixir Cookbook - This book is a set of recipes grouped by topic by Paulo A Pereira (2015).
  • 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ć (2015).
  • Erlang in Anger - This book intends to be a little guide about how to be the Erlang medic in a time of war by Fred Hebert (2014).
  • Introducing Elixir - A gentle introduction to the language, with lots of code examples and exercises by Simon St. Laurent and J. David Eisenberg (2013).
  • Metaprogramming Elixir: Write Less Code, Get More Done (and Have Fun!) - Thorough explanation on how to exploit Elixir's metaprogramming capabilities to improve your Elixir coding by Chris McCord (2015).
  • Programming Elixir - The book provides introduction to functional and concurrent programming with Elixir by Dave Thomas (2014).
  • Programming Phoenix - Definitive guide to build web applications with the Phoenix framework by Chris McCord, José Valim and Bruce Tate (2015).
  • 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) (Github Repo).

Community

Getting in contact with the community via chat or mailinglist.

  • #elixir-lang - The IRC Channel #elixir-lang on Freenode.
  • elixir-lang-core - Mailinglist for Elixir Core development, use "talk" for questions and general discussions.
  • elixir-lang-talk - Official Elixir Mailinglist for questions and discussions.
  • ElixirSlack - Elixir Slack Community.

Editors

Editors and IDEs useable for Elixir/Erlang

  • Alchemist - Elixir Tooling Integration Into Emacs.
  • Alchemist-Server - Editor/IDE independent background server to inform about Elixir mix projects.
  • Atom - Elixir language support for Atom.
  • atom-elixir - An Atom package for Elixir.
  • atom-iex - Run an IEx session in Atom.
  • elixir_generator - Vim plugin to generate Elixir module and test files with one command.
  • intellij_elixir - Elixir helpers for intellj-elixir, the Elixir plugin for JetBrains IDEs.
  • Jetbrains - Elixir for IntelliJ IDEA, RubyMine, WebStorm, PhpStorm, PyCharm, AppCode, Android Studio, 0xDBE.
  • Notepad++ - Elixir syntax highlighting for Notepad++.
  • phoenix-snippets - Phoenix Snippets for Atom.
  • TextMate - Elixir syntax highlighting for TextMate.
  • vim-elixir - Vim configuration files for Elixir.
  • vim-ex_test - Vim test runner based on Thoughtbots vim-rspec.

Other Awesome Lists

Other amazingly awesome lists can be found at jnv/lists or bayandin/awesome-awesomeness.

  • Awesome Erlang - A curated list of awesome Erlang libraries, resources and shiny things.
  • Erlang Bookmarks - A collection of links for Erlang developers.

Reading

Elixir-releated reading materials.

Screencasts

Cool video tutorials.

  • Elixir Sips - Tiny screencasts for learning Elixir.
  • ExCasts - Elixir and Phoenix screencasts for all skill levels.
  • LearnElixir.tv - Beginner friendly, in-depth, step by step screencasts.
  • Meet Elixir - Walk through some features and concepts of Elixir by José Valim.

Styleguides

Styleguides for ensuring consistency while coding.

Websites

Useful web and Elixir-related websites and newsletters.

Contributing

Please see CONTRIBUTING for details.

About

A curated list of amazingly awesome Elixir and Erlang libraries, resources and shiny things. Updates:

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Elixir 100.0%