A curated list of amazingly awesome Elixir libraries, resources, and shiny things inspired by awesome-php.
- Awesome Elixir
- Actors
- Algorithms and Data structures
- Applications
- Artificial Intelligence
- Audio and Sounds
- Authentication
- Authorization
- Behaviours and Interfaces
- Bittorrent
- Build Tools
- Caching
- Cloud Infrastructure and Management
- Code Analysis
- Command Line Applications
- Configuration
- Cryptography
- CSV
- Date and Time
- Debugging
- Documentation
- Domain-specific language
- ECMAScript
- Embedded Systems
- Encoding and Compression
- Eventhandling
- Examples and funny stuff
- Feeds
- Files and Directories
- Formulars
- Framework Components
- Frameworks
- Games
- Geolocation
- Hardware
- HTTP
- Images
- JSON
- Languages
- Lexical analysis
- Logging
- Macros
- Markdown
- Miscellaneous
- Native Implemented Functions
- Natural Language Processing (NLP)
- Networking
- Office
- ORM and Datamapping
- OTP
- Package Management
- Protocols
- Queue
- Release Management
- REST and API
- Security
- Static Page Generation
- Statistics
- Templating
- Testing
- Text and Numbers
- Third Party APIs
- Translations and Internationalizations
- Utilities
- Validations
- Version Control
- XML
- YAML
- Resources
- Contributing
Libraries and tools for working with actors and such.
- dflow - Pipelined flow processing engine.
- 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.
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.
- erlang-algorithms - Implementations of popular data structures and algorithms.
- 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.
- gen_fsm - A generic finite state-machine - Elixir wrapper around OTP's gen_fsm.
- graphmath - An Elixir library for performing 2D and 3D mathematics.
- hash_ring_ex - A consistent hash-ring implemention for Elixir.
- hypex - Fast Elixir implementation of HyperLogLog.
- 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.
- merkle_tree - A Merkle hash tree implementation in Elixir.
- minmaxlist - Elixir library extending
Enum.min_by/2
,Enum.max_by/2
andEnum.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.
- monad - Haskell inspired monads in Elixir stylish syntax.
- 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.
- ratio - Adds Rational Numbers and allows them to be used in common arithmatic operations. Also supports conversion between Floats and Rational Numbers.
- 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.
- spacesaving - stream count distinct element estimation using the "space saving" algorithm.
- 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.
Standalone applications.
- Alher - Alexander is a rock-solid IRC bot written in Elixir with powerful plugins.
- bpe - Business Process Engine in Erlang.
- Consolex - Consolex is a tool that allows you to attach a web based console to any mix project.
- dragonfly_server - Elixir app to serve Dragonfly images.
- ExChat - A Slack-like app by Elixir, Phoenix & React(redux).
- Exon - A “mess manager” developed in Elixir and provides a simple API to manage & document your stuff.
- Hydra - A multi-headed beast: API gateway, request cache, and data transformations.
- 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.
- Nvjorn - A multi-protocol network services monitor written in Elixir using Poolboy.
- Phoenix Battleship - The Good Old game built with Elixir, Phoenix Framework, React and Redux.
- Phoenix Toggl - Toggl tribute done in Elixir, Phoenix Framework, React and Redux.
- 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.
When your code becomes smarter than you.
- Exnn - Evolutive Neural Networks framework à la G.Sher written in Elixir.
- Neat-Ex - An Elixir implementation of the NEAT algorithm.
Libraries working with sounds and tones.
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.
- ueberauth_vk - vk.com Strategy for Überauth.
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.
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.
Sharing is caring with Elixir
- bento - An incredibly fast, correct, pure-Elixir Bencoding library.
- tracker_request - Dealing with bittorrent tracker requests and responses.
- wire - Encode and decode bittorrent peer wire protocol messages with Elixir.
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.
Libraries for caching data.
- cachex - A powerful caching library for Elixir with a wide featureset.
- 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.
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, supporting Dynamo, Kinesis, Lambda, SQS, and S3.
- 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.
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.
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.
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.
- sweetconfig - Read YAML configuration files from any point at your app.
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
andpublic_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.
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.
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.
- ex_ical - ICalendar parser.
- 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.
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.
- observer_cli - Visualize Elixir & Erlang nodes on the command line, it aims to helpe developers debug production systems.
- 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.
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.
Specialized computer languages for a particular application domain.
- Absinthe Graphql - Fully featured GraphQL library.
- graphql - An Elixir implementation of Facebook's GraphQL.
Implementations working with JavaScript, JScript or ActionScript.
- estree - A implementation of the SpiderMonkey Parser API in Elixir.
Working with Email and stuff.
- bamboo - Composable, testable and adapter based email library. Out of the box support for rendering with Phoenix and a plug for previewing sent emails in dev.
- 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.
- gmail - A simple Gmail REST API client for Elixir.
- 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.
- pop3mail - Pop3 client to download email (including attachments) from the inbox via the commandline or Elixir API.
- swoosh - Compose, deliver and test your Emails easily in Elixir with adapters for SMTP, Sendgrid, Mandrill, Mailgun, Postmark and Phoenix integration with mailbox preview.
Embedded systems development.
- bake - Configure, compile and share systems, toolchains and linux firmware.
- nerves - A framework for writing embedded software in Elixir.
Transforming data in different formats or compressing it.
- huffman - Huffman encoding and decoding in Elixir.
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.
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.
- elixir_koans - Elixir koans is a fun, easy way to get started with the elixir programming language.
- ex_chain - Simple Markov Chain that generates funny tweets, built using 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.
- oop - OOP in Elixir!
- 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.
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.
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_guard - ExGuard is a mix command to handle events on file system modifications.
- 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.
- fwatch - A callback-based file watcher based on fs.
- 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.
Handling web formulars and similar stuff.
- forms - Erlang Business Documents Generator.
Standalone component from web development frameworks.
- absinthe_plug - Plug support for Absinthe.
- 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.
- dayron - A repository similar to
Ecto.Repo
that works with REST API requests instead of a database. - ex_admin - ExAdmin is an auto administration package for Elixir and the Phoenix Framework.
- 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.
- scrivener_headers - Helpers for paginating API responses with Scrivener and HTTP headers.
- scrivener_html - Helpers built to work with Scrivener's page struct to easily build HTML output for various CSS frameworks.
- sentinel - An authentication framework for Phoenix extending guardian with routing and other basic functionality.
- 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.
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.
Libraries for and implementations of games.
- entice - A distributed Entity-Component-System framework, providing its own example MMORPG server.
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.
- ip2location - An Elixir library for IP2Location database.
- ipgeobase - Find Russian and Ukraine city by IP address and find country for other country.
- segseg - Segment-segment intersection classifier and calculator.
Hardware related things like I/O interfaces and such.
- elixir_ale - Elixir access to hardware I/O interfaces such as GPIO, I2C, and SPI.
- nerves - Framework for building firmware for platforms like Raspberry Pi and BeagleBone Black.
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.
- mnemonic_slugs - A memorable, mnemonic slug generator in Elixir.
- 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.
Libraries for working with and manipulating images.
- alchemic_avatar - Elixir library for generating letter avatar from string.
- artifact - File upload and on-the-fly processing for Elixir.
- bump - A BMP file writer in pure Elixir.
- chunky_svg - A library for drawing things with SVG.
- cloudex - Cloudex is an Elixir library that can upload image files or urls to Cloudinary.
- eikon - An Elixir library providing a read-only interface for image files.
- 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.
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 built on top of Elixir.
- lighthouse_scheme - A small Lisp-like language and interactive REPL, built in Elixir.
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 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.
- logglix - A logger backend for posting errors to Loggly.
- logster - Easily parsable, one-line logging for Phoenix and Plug applications, inspired by Lograge.
- 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.
- slack_logger_backend - A logger backend for posting errors to Slack.
- syslog - Erlang port driver for interacting with syslog via syslog(3).
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.
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.
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.
- exldap - A module for working with LDAP from Elixir.
- 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.
- japan_municipality_key - Elixir Library for Japan municipality key converting.
- keys1value - Erlang set associative map for key lists.
- mixgraph - An interactive dependency plotter for your Hex Package.
- mixstar - MixStar starred GitHub repository that depends on your project.
- netrc - Reads netrc files implemented in Elixir.
- onetime - An onetime key-value store for Elixir.
- pact - Better dependency injection in Elixir for cleaner code and testing.
- phone - A parser to get useful info from telephone numbers.
- 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.
Tools and libraries working with Erlang NIF.
- hsnif - Tool that allows to write Erlang NIF libraries in Haskell.
- 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.
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.
Libraries and tools for using network related stuff.
- chatter - Secure message broadcasting based on a mixture of UDP multicast and TCP.
- 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.
Libraries for working with office suite documents.
- excellent - An OpenXL (Excel 2000) Parser for Elixir.
- xlsxir - Xlsx file parser with support for ISO 8601 date formats. Data is extracted to an Erlang Term Storage (ETS) table and is accessed through various functions.
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.
- ddb_client - DalmatinerDB client.
- 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_fixtures - Fixtures for Elixir apps using Ecto.
- 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.
- eventstore - A CQRS EventStore using Postgres for persistence, written in Elixir.
- ex_bitcask - Elixir wrapper of Basho's Bitcask Key/Value store.
- ex_sider - Elixir Map/List/Set interfaces for Redis datastructures (uses Redix, but that is configurable).
- 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.
- exsolr - A Solr wrapper written in Elixir.
- extreme - An Elixir library using Eventstore for persistance of events generated by aggregates (CQRS).
- exts - Elixir Terms Storage, ets wrapper.
- folsom_ddb - DalmatinerDB backend to store folsom metrics.
- github_ecto - Ecto adapter for GitHub API.
- 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.
- neo4j_sips - Neo4j driver for Elixir.
- neo4j_sips_models - Minimalistic Model support for the Neo4j.Sips Elixir driver.
- postgrex - PostgreSQL driver for Elixir.
- red - Persist relationships between objects in Redis, in a graph-like way.
- redix - Superfast, pipelined, resilient Redis driver for Elixir.
- redo - Heroku's pipelining redis client for erlang.
- rethinkdb - Rethinkdb client in pure Elixir using JSON protocol.
- riak - A Riak client written in Elixir.
- riak_ecto - Riak adapter for Ecto.
- 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.
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.
Libraries and tools for package and dependency management.
- Hex - A package manager for the Erlang ecosystem.
- rebar3_hex - Hex.pm plugin for rebar3.
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.
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.
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.
- verk - Verk is a job processing system backed by Redis. It uses the same job definition of Sidekiq/Resque.
- work_queue - Simple implementation of the hungry-consumer model in Elixir.
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_deb - Create a deb for your Elixir release with ease.
- exrm_docker - Exrm plugin to dockerize your Elixir release.
- 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.
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.
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.
Tools and libraries for generating static websites and content.
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.
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.
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.
- efrisby - A REST API testing framework for erlang.
- 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.
- ex_unit_notifier - Desktop notifications for ExUnit.
- 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.
- setup_tag - Easily mix and match functions marked with tags to setup your test context.
- 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.
- wallaby - Wallaby helps test your web applications by simulating user interactions concurrently and manages browsers.
- white_bread - Story based BDD in Elixir using the gherkin syntax.
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.
- sentient - Simple sentiment analysis based on the AFINN-111 wordlist.
- 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.
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.
- anilixir - Elixir client for the Anilist API.
- 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.
- dublin_bus_api - Access to the Real Time Passenger Information (RTPI) for Dublin Bus services.
- 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.
- kane - A Google Cloud Pub/Sub client.
- 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.
- pay - An Elixir Lib to deal with Paypal and other payment solutions.
- 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.
- sendgrid - Send composable, transactional emails with SendGrid.
- simplex - An Elixir library for interacting with the Amazon SimpleDB API.
- slack - Slack real time messaging client in Elixir.
- sparkpost - An Elixir library for sending email using SparkPost.
- statix - Expose app metrics in the StatsD protocol.
- stripe - An Elixir Library wrapping Stripe's API.
- stripity_stripe - An Elixir Library for Stripe.
- 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.
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 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.
Libraries and implementations for validation of data.
- avex - Awesome validations for Elixir.
- bankster - A IBAN account number and BIC validation library 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.
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.
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.
- readability - Readability is for extracting and curating articles.
- 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.
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.
Various resources, such as books, websites and articles, for improving your Elixir development skills and knowledge.
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).
Getting in contact with the community via chat or mailinglist.
- #elixir-lang - The IRC Channel #elixir-lang on Freenode.
- Elixir Forum - Community run discussion forums for all things Elixir.
- 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 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.
- Alchemist.vim - Elixir Tooling Integration Into Vim.
- 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 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.
Elixir-releated reading materials.
- Elixir Cheat-Sheet - A Elixir cheat sheet, by Andy Hunt & Dave Thomas.
- Elixir Functional Programming - Material to introduce functional programming using the Elixir language.
- Elixir School - Lessons about the Elixir programming language.
- Learning Elixir - Learning Elixir Website, by Joseph Kain.
- The Little Schemer in Elixir - Exercises and algorithms from the Little Schemer book, ported to Elixir.
- xElixir - Exercism Exercises in Elixir.
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 for ensuring consistency while coding.
- niftyn8/elixir_style_guide - A community-driven style guide for Elixir.
- rrrene/elixir-style-guide - Style guide checked by Credo.
Useful web and Elixir-related websites and newsletters.
- 30 Days of Elixir - A walk through the Elixir language in 30 exercises.
- Awesome Elixir @LibHunt - Your go-to Elixir Toolbox.
- BEAM Community - From distributed systems, to robust servers and language design on the Erlang VM.
- Benjamin Tan - Learnings & Writings - A blog consisting of mostly Elixir posts.
- Elixir China - Chinese Elixir website elixir-cn.com.
- Elixir Examples - A collection of small Elixir programming language examples.
- Elixir Fountain - A weekly podcast with news & interviews from around the Elixir community hosted by Johnny Winn.
- Elixir Github Repository - The project repository.
- Elixir Github Wiki - The project's wiki, containing much useful information.
- Elixir Job Board - A job board for Elixir, and community of Elixir developers, written using Phoenix.
- Elixir Playground - Try Elixir code in your browser.
- Elixir Quiz - Weekly programming problems to help you learn Elixir.
- Elixir Radar - The "official" Elixir newsletter, published weekly via email by Plataformatec.
- Elixir Recipes - Collection of patterns & solutions to common problems in Elixir.
- Elixre - An Elixir regular expression editor & tester.
- Erlang Patterns - Unlike traditional software design pattern efforts, which tend to emphasize the importance of code reuse, this project emphasizes patterns that feel good to humans.
- How I start - Elixir - Explanation and intro to Elixir by José Valim.
- Learning Elixir - A blog about a Professional Software Engineer learning Elixir.
- Weekly Elixir Digest - A weekly newsletter with the latest articles on Elixir and Phoenix.
Please see CONTRIBUTING for details.