Contents
Actors
Libraries and tools for working with actors and such.
- exactor β663 π 386 β Helpers for easier implementation of actors in Elixir.
- poolboy β1359 π 873 β A hunky Erlang worker pool factory.
Algorithms and Data structures
Libraries and implementations of algorithms and data structures.
- flow β1099 π 1 β Computational parallel flows on top of GenStage.
- witchcraft β860 π 535 β Common algebraic structures and functions for Elixir.
Applications
Standalone applications.
- Phoenix Battleship β502 π 1622 β The Good Old game built with Elixir, Phoenix Framework, React and Redux.
- Phoenix Trello β2472 π 1615 β Trello tribute done in Elixir, Phoenix Framework, React and Redux.
- poxa β889 π 2 β Open Pusher implementation, compatible with Pusher libraries.
Authentication
Libraries for implementing authentication schemes.
- coherence β1206 π 374 β Coherence is a full featured, configurable authentication system for Phoenix. (Docs).
- guardian β3002 π 4 β An authentication framework for use with Elixir applications. (Docs).
- oauth2 β613 π 542 β An OAuth 2.0 client library for Elixir.
- phx_gen_auth β675 π 4 β An authentication system generator for Phoenix 1.5 applications.
- pow β1173 π 3 β Robust, modular, and extendable user authentication system (Website - Doc).
- ueberauth β1240 π 30 β An Elixir Authentication System for Plug-based Web Applications.
Authorization
Libraries for implementing Authorization handling.
- bodyguard β505 π 8 β A flexible authorization library for Phoenix applications.
Benchmarking
Running code to see how long it takes, which is faster and/or if improvements have been made.
- benchee β954 π 15 β Easy and extensible benchmarking in Elixir!
Build Tools
Project build and automation tools.
- relx β628 π 6 β A release assembler for Erlang.
Caching
Libraries for caching data.
- cachex β963 π 2 β A powerful caching library for Elixir with a wide featureset.
- con_cache β755 π 556 β ConCache is an ETS based key/value storage.
- nebulex β652 π 4 β A fast, flexible and extensible distributed and local caching library for Elixir.
Chatting
Chatting via IRC, Slack, HipChat and other systems using Elixir.
- cog β910 π 960 β Cog is an open chatops platform that gives you a secure, collaborative command line right in your chat window.
- hedwig β606 π 1125 β XMPP Client/Bot Framework for Elixir.(Docs).
Cloud Infrastructure and Management
Applications, tools and libraries for your own cloud service.
- erlcloud β626 π 8 β Cloud Computing library for Erlang (Amazon EC2, S3, SQS, SimpleDB, Mechanical Turk, ELB). (Docs).
- ex_aws β989 π 18 β AWS client, supporting Dynamo, Kinesis, Lambda, SQS, and S3.
- libcluster β1262 π 3 β Automatic cluster formation/healing for Elixir applications.(Docs).
Code Analysis
Libraries and tools for code base analysis, parsing, and manipulation.
- credo β3762 π 2 β A static code analysis tool with a focus on code consistency and teaching Elixir. (Docs).
- dialyxir β1279 π 6 β Mix tasks to simplify use of Dialyzer in Elixir projects.(Docs).
- excoveralls β598 π 11 β Coverage report tool for Elixir with coveralls.io integration.
Cryptography
Encrypting and decrypting data
- comeonin β1160 π 44 β Password hashing (argon2, bcrypt, pbkdf2_sha512) library for Elixir.(https://hexdocs.pm/comeonin/api-reference.html).
CSV
Libraries and implementations working with CSV.
- nimble_csv β536 π 1 β A simple and fast CSV parsing and dumping library for Elixir.
Date and Time
Libraries for working with dates and times.
- quantum β1706 π 86 β Cron-like job scheduler for Elixir applications.
- timex β1393 π 59 β Easy to use Date and Time modules for Elixir.
Debugging
Libraries and tools for debugging code and applications.
- observer_cli β1050 π 25 β Visualize Elixir & Erlang nodes on the command line, it aims to helpe developers debug production systems.
- visualixir β1164 π 533 β A process visualizer for remote BEAM nodes.
Deployment
Installing and running your code automatically on other machines.
- edeliver β1885 π 359 β Deployment for Elixir and Erlang.
- gatling β501 π 1461 β Collection of mix tasks to automatically create a exrm release from git and launch/upgrade it on your server.
- heroku-buildpack-elixir β758 π 25 β Heroku buildpack to deploy Elixir apps to Heroku.
Documentation
Libraries and tools for creating documentation.
- ex_doc β1008 π 1 β ExDoc is a tool to generate documentation for your Elixir projects.
- phoenix_swagger β525 π 33 β Provides swagger integration to the Phoenix framework.
Domain-specific language
Specialized computer languages for a particular application domain.
- Absinthe Graphql β3464 π 15 β Fully featured GraphQL library.
Working with Email and stuff.
- bamboo β1576 π 2 β 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.
- gen_smtp β579 π 5 β A generic Erlang SMTP server and client that can be extended via callback modules.
- swoosh β920 π 1 β Compose, deliver and test your Emails (with attachments!) easily in Elixir with adapters for SMTP, Sendgrid, Mandrill, Mailgun, Postmark and lots others, plus Phoenix integration with mailbox preview.
Errors and Exception Handling
Working with errors and exceptions.
-
OK
β512
π
409
β
Elegant error handling with result monads, featuring a simple & powerful
with
construct and a happy path pipe operator.
Eventhandling
Sending/Emitting and receiving/handling Events in Elixir.
- event_bus β554 π 36 β Simple event bus implementation with topic filtering and built-in event store and event watcher.
Examples and funny stuff
Example code and stuff too funny or curious not to mention.
- changelog.com β2193 π 0 β CMS that runs changelog.com built with Phoenix 1.4.
- elixir_koans β1634 π 108 β Elixir koans is a fun, easy way to get started with the elixir programming language.
- hexpm β791 π 8 β Source code for the hex package manager site built with Phoenix 1.3.
- magnetissimo β2493 π 207 β Web application that indexes all popular torrent sites, and saves it to the local database.
- real world example app β758 π 448 β Elixir / Phoenix implementation of RealWorld.io backend specs - a Medium clone.
Feature Flags and Toggles
Libraries to manage feature toggles (AKA feature flags): ON/OFF values that can be toggled at runtime through some interface
- fun_with_flags β549 π 6 β A feature toggle library using Redis or Ecto for persistence, an ETS cache for speed and PubSub for distributed cache busting. Comes with a management web UI for Phoenix and Plug.
Framework Components
Standalone component from web development frameworks.
- addict β653 π 1388 β User authentication for Phoenix Framework.
- commanded β1268 π 21 β Command handling middleware for Command Query Responsibility Segregation (CQRS) applications.
- ex_admin β1178 π 1042 β ExAdmin is an auto administration package for Elixir and the Phoenix Framework.
- plug β2306 π 9 β A specification and conveniences for composable modules in between web applications.
- surface β1104 π 0 β A server-side rendering component library for Phoenix.
- torch β617 π 42 β Torch is a rapid admin generator for Phoenix apps. It uses generators rather than DSLs to ensure that the code remains maintainable.
Frameworks
Web development frameworks.
- kitto β924 π 80 β A framework for interactive dashboards.
- n2o β1259 π 19 β Distributed Application Server.
- phoenix β16338 π 1 β Elixir Web Framework targeting full-featured, fault tolerant applications with realtime functionality.
GUI
Libraries for writing Graphical User Interfaces.
- scenic β1600 π 112 β Portable 2D UI framework.
Hardware
Hardware related things like I/O interfaces and such.
- nerves β1623 π 1 β Framework for building firmware for platforms like Raspberry Pi and BeagleBone Black.
HTML
Libraries and implementations working with HTML (for xml tools please go to the XML section).
- floki β1434 π 5 β A simple HTML parser that enables searching using CSS like selectors.
HTTP
Libraries for working with HTTP and scraping websites.
- Crawler β779 π 286 β A high performance web crawler in Elixir.
- elli β673 π 1094 β Elli is a webserver you can run inside your Erlang application to expose an HTTP API.
- exvcr β550 π 89 β HTTP request/response recording library for Elixir, inspired by VCR.
- finch β597 π 4 β An HTTP client with a focus on performance, built on top of Mint and NimblePool.
- gun β704 π 13 β HTTP/1.1, HTTP/2 and Websocket client for Erlang/OTP.
- hackney β1122 π 68 β Simple HTTP client written in Erlang.
- httpoison β1893 π 44 β Yet Another HTTP client for Elixir powered by hackney.
- httpotion β723 π 366 β Fancy HTTP client for Elixir, based on ibrowse.
- mint β958 π 4 β Functional HTTP client for Elixir with support for HTTP/1 and HTTP/2.
- mochiweb β1769 π 377 β MochiWeb is an Erlang library for building lightweight HTTP servers.
- tesla β1387 π 26 β HTTP client library, with support for middleware and multiple adapters.
Instrumenting / Monitoring
Libraries for collecting and exporting metrics.
- elixometer β797 π 5 β A light Elixir wrapper around exometer.
- exometer β508 π 1843 β Basic measurement objects and probe behavior in Erlang.
- telemetry β639 π 8 β Dynamic dispatching library for metrics and instrumentations.
- wobserver β898 π 1309 β Web based metrics, monitoring, and observer.
JSON
Libraries and implementations working with JSON.
- ja_serializer β619 π 129 β JSONAPI.org Serialization in Elixir.
- jason β1167 π 63 β A blazing fast JSON parser and generator in pure Elixir.
- joken β578 π 23 β Encodes and decodes JSON Web Tokens.
- jsx β639 π 163 β An Erlang application for consuming, producing, and manipulating json.
- poison β1827 π 944 β Poison is a new JSON library for Elixir focusing on wicked-fast speed without sacrificing simplicity, completeness, or correctness.
Languages
Languages built on top of Elixir.
- Elchemy β1078 π 345 β Compiler allowing to translate Elm programming language code to Elixir.
Markdown
Libraries and tools working with Markdown and such.
- earmark β662 π 3 β Markdown parser for Elixir.
Miscellaneous
Useful libraries or tools that donβt fit in the categories above.
- AtomVM β825 π 1 β AtomVM allows to run Elixir/Erlang code on embedded devices such as ESP32 and STM32 microcontrollers.
- porcelain β812 π 127 β Porcelain implements a saner approach to launching and communicating with external OS processes from Elixir.
Native Implemented Functions
Tools and libraries working with Erlang NIF.
- Rustler β2662 π 15 β Library for writing NIFs for Erlang or Elixir safely in Rust. No segfaults.
Networking
Libraries and tools for using network related stuff.
- socket β642 π 436 β Socket wrapping for Elixir.
ORM and Datamapping
Libraries that implement object-relational mapping or datamapping techniques.
- amnesia β629 π 436 β Mnesia wrapper for Elixir.
- ecto β4982 π 1 β A database wrapper and language integrated query for Elixir.
- ecto_enum β535 π 128 β Ecto extension to support enums in models.
- eredis β595 π 759 β Erlang Redis client.
- eventstore β727 π 28 β A CQRS EventStore using Postgres for persistence, written in Elixir.
- memento β593 π 192 β Simple Mnesia Interface in Elixir.
- moebius β531 π 596 β A functional query tool for Elixir and PostgreSQL.
- postgrex β804 π 1 β PostgreSQL driver for Elixir.
- redix β812 π 19 β Superfast, pipelined, resilient Redis driver for Elixir.
Protocols
Special protocol and format libraries.
- grpc-elixir β849 π 98 β The Elixir implementation of gRPC.
Queue
Libraries for working with event and task queues.
- amqp β532 π 0 β Simple Elixir wrapper for the Erlang RabbitMQ client, based on Langohr.
- broadway β1272 π 1 β Concurrent and multi-stage data ingestion and data processing with Elixir.
- exq β1215 π 18 β Job processing library for Elixir - compatible with Resque/Sidekiq.
- honeydew β669 π 186 β Honeydew is a worker pool library for Elixir.
- oban β1550 π 1 β Robust asynchronous job processor powered by Elixir and modern PostgreSQL.
- que β611 π 553 β Simple Background Job Processing with Mnesia.
- verk β662 π 248 β Verk is a job processing system backed by Redis. It uses the same job definition of Sidekiq/Resque.
Release Management
Libraries and tools for release management.
- distillery β2745 π 373 β A pure Elixir implementation of release packaging functionality for the Erlang VM.
- exrm β935 π 1343 β Automatically generate a release for your Elixir project.
REST and API
Libraries and web tools for developing REST-ful APIs.
- maru β1271 π 583 β Elixir copy of grape for creating REST-like APIs.
Security
Libraries and tools regarding security.
- sobelow β1081 π 45 β Security-focused static analysis for the Phoenix Framework.
Testing
Libraries for testing codebases and generating test data.
- bypass β719 π 65 β Bypass provides a quick way to create a mock HTTP server with a custom plug.
- espec β724 π 101 β BDD test framework for Elixir inspired by RSpec.
- ex_machina β1567 π 13 β Flexible test factories for Elixir. Works out of the box with Ecto and Ecto associations.
- faker β665 π 3 β Faker is a pure Elixir library for generating fake data.
- hound β1274 π 141 β Elixir library for writing integration tests and browser automation.
- meck β716 π 6 β A mocking library for Erlang.
- mix_test_watch β713 π 5 β Automatically run your Elixir projectβs tests each time you save a file.
- mock β511 π 106 β Mocking library for the Elixir language.
- mox β847 π 1 β Mocks and explicit contracts for Elixir.
- proper β794 π 1 β PropEr (PROPerty-based testing tool for ERlang) is a QuickCheck-inspired open-source property-based testing tool for Erlang.
- wallaby β1128 π 3 β Wallaby helps test your web applications by simulating user interactions concurrently and manages browsers.
Text and Numbers
Libraries for parsing and manipulating text and numbers.
- money β516 π 1 β Working with Money safer, easier, and fun, interpretation of the Fowlerβs Money pattern.
Third Party APIs
Libraries for accessing third party APIs.
- google-cloud β546 π 1 β This repository contains all the client libraries to interact with Google APIs.
- slack β581 π 98 β Slack real time messaging client in Elixir.
- stripity_stripe β593 π 8 β An Elixir Library for Stripe.
WebAssembly
Libraries for running WebAssembly (WASM) in Elixir or running Elixir on WebAssembly.
- lumen β2378 π 47 β An alternative BEAM implementation, designed for WebAssembly.