Contents
Actors
Libraries and tools for working with actors and such.
- exactor β670 π 2134 β Helpers for easier implementation of actors in Elixir.
- poolboy β1489 π 2621 β A hunky Erlang worker pool factory.
Algorithms and Data structures
Libraries and implementations of algorithms and data structures.
- flow β1389 π 994 β Computational parallel flows on top of GenStage.
- witchcraft β1149 π 1404 β Common algebraic structures and functions for Elixir.
Applications
Standalone applications.
- Phoenix Battleship β520 π 3370 β The Good Old game built with Elixir, Phoenix Framework, React and Redux.
- Phoenix Trello β2496 π 3363 β Trello tribute done in Elixir, Phoenix Framework, React and Redux.
- Plural β1019 π 962 β Deploys your favorite open source applications like airflow and airbyte in your own cloud account with just two commands. Written in Elixir and Phoenix Framework for server side, and React for frontend.
- poxa β999 π 1284 β Open Pusher implementation, compatible with Pusher libraries.
- RemoteRetro β543 π 1056 β A real-time application for conducting Agile retrospectives at remoteretro.org written in Elixir/Phoenix/React.
Artificial Intelligence
When your code becomes smarter than you.
- Axon β1255 π 966 β Nx-powered Neural Networks
- m2cgen β2499 π 1161 β A CLI tool to transpile trained classic ML models into a native Elixir code with zero dependencies.
- Nx β2166 π 961 β Multi-dimensional arrays (tensors) and numerical definitions for Elixir.
Authentication
Libraries for implementing authentication schemes.
- coherence β1238 π 1643 β Coherence is a full featured, configurable authentication system for Phoenix. (Docs).
- guardian β3312 π 1111 β An authentication framework for use with Elixir applications. (Docs).
- oauth2 β698 π 1044 β An OAuth 2.0 client library for Elixir.
- phx_gen_auth β787 π 1571 β An authentication system generator for Phoenix 1.5 applications.
- pow β1470 π 985 β Robust, modular, and extendable user authentication system (Website - Doc).
- ueberauth β1471 π 1005 β An Elixir Authentication System for Plug-based Web Applications.
Authorization
Libraries for implementing Authorization handling.
- bodyguard β673 π 1467 β 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 β1259 π 1080 β Easy and extensible benchmarking in Elixir!
- benchfella β504 π 1678 β Benchmarking tool for Elixir.
Build Tools
Project build and automation tools.
- relx β676 π 977 β A release assembler for Erlang.
Caching
Libraries for caching data.
- cachex β1335 π 967 β A powerful caching library for Elixir with a wide featureset.
- con_cache β862 π 1057 β ConCache is an ETS based key/value storage.
- nebulex β1034 π 1045 β A fast, flexible and extensible distributed and local caching library for Elixir.
Chatting
Chatting via IRC, Slack, HipChat and other systems using Elixir.
- cog β921 π 1553 β Cog is an open chatops platform that gives you a secure, collaborative command line right in your chat window.
- hedwig β648 π 2874 β XMPP Client/Bot Framework for Elixir.(Docs).
Cloud Infrastructure and Management
Applications, tools and libraries for your own cloud service.
- erlcloud β651 π 980 β Cloud Computing library for Erlang (Amazon EC2, S3, SQS, SimpleDB, Mechanical Turk, ELB). (Docs).
- ex_aws β1191 π 972 β AWS client, supporting Dynamo, Kinesis, Lambda, SQS, and S3.
- libcluster β1727 π 1048 β Automatic cluster formation/healing for Elixir applications.(Docs).
Code Analysis
Libraries and tools for code base analysis, parsing, and manipulation.
- credo β4596 π 991 β A static code analysis tool with a focus on code consistency and teaching Elixir. (Docs).
- dialyxir β1542 π 963 β Mix tasks to simplify use of Dialyzer in Elixir projects.(Docs).
- excoveralls β766 π 988 β Coverage report tool for Elixir with coveralls.io integration.
Command Line Applications
Anything helpful for building CLI applications.
- ratatouille β633 π 1514 β A TUI (terminal UI) kit for Elixir.
Cryptography
Encrypting and decrypting data
- cloak β520 π 1069 β Cloak makes it easy to use encryption with Ecto.(Docs).
- comeonin β1250 π 1009 β 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 β692 π 1041 β A simple and fast CSV parsing and dumping library for Elixir.
Date and Time
Libraries for working with dates and times.
- quantum β2112 π 979 β Cron-like job scheduler for Elixir applications.
- timex β1674 π 991 β Easy to use Date and Time modules for Elixir.
Debugging
Libraries and tools for debugging code and applications.
- observer_cli β1253 π 1112 β Visualize Elixir & Erlang nodes on the command line, it aims to helpe developers debug production systems.
- visualixir β1268 π 2282 β A process visualizer for remote BEAM nodes.
Deployment
Installing and running your code automatically on other machines.
- edeliver β1955 π 1251 β Deployment for Elixir and Erlang.
- gatling β500 π 3209 β Collection of mix tasks to automatically create a exrm release from git and launch/upgrade it on your server.
- heroku-buildpack-elixir β798 π 1211 β Heroku buildpack to deploy Elixir apps to Heroku.
Documentation
Libraries and tools for creating documentation.
- ex_doc β1297 π 961 β ExDoc is a tool to generate documentation for your Elixir projects.
- phoenix_swagger β633 π 1166 β Provides swagger integration to the Phoenix framework.
Domain-specific language
Specialized computer languages for a particular application domain.
- Absinthe Graphql β4102 π 987 β Fully featured GraphQL library.
Working with Email and stuff.
- bamboo β1856 π 1068 β 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 β642 π 966 β A generic Erlang SMTP server and client that can be extended via callback modules.
- swoosh β1277 π 962 β 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
β589
π
2157
β
Elegant error handling with result monads, featuring a simple & powerful
withconstruct and a happy path pipe operator. - sentry-elixir β554 π 1041 β The Official Elixir client for Sentry.
Eventhandling
Sending/Emitting and receiving/handling Events in Elixir.
- event_bus β664 π 1382 β 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 β2535 π 963 β CMS that runs changelog.com built with Phoenix 1.4.
- elixir_koans β1960 π 1013 β Elixir koans is a fun, easy way to get started with the elixir programming language.
- hexpm β983 π 972 β Source code for the hex package manager site built with Phoenix 1.3.
- magnetissimo β2777 π 969 β Web application that indexes all popular torrent sites, and saves it to the local database.
-
phoenix-chat-example
β664
π
967
β
A step-by-step example/tutorial for building a Chat app in Phoenix for complete beginners. Covers testing, docs and deployement. Phoenix
1.5.3. - real world example app β879 π 2196 β 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 β855 π 1134 β 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.
Files and Directories
Libraries and implementations for working with files and directories.
- waffle β630 π 1001 β Flexible file upload and attachment library for Elixir.
Framework Components
Standalone component from web development frameworks.
- addict β648 π 3136 β User authentication for Phoenix Framework.
- commanded β1687 π 1005 β Command handling middleware for Command Query Responsibility Segregation (CQRS) applications.
- ex_admin β1192 π 2791 β ExAdmin is an auto administration package for Elixir and the Phoenix Framework.
- plug β2640 π 968 β A specification and conveniences for composable modules in between web applications.
- scrivener β550 π 1623 β Paginate your Ecto queries.
- surface β1841 π 966 β A server-side rendering component library for Phoenix.
- torch β926 π 979 β 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 β952 π 1829 β A framework for interactive dashboards.
- n2o β1318 π 991 β Distributed Application Server.
- phoenix β19422 π 966 β Elixir Web Framework targeting full-featured, fault tolerant applications with realtime functionality.
- RIG β557 π 1215 β Create low-latency, interactive user experiences for stateless microservices.
Geolocation
Libraries for geocoding addresses and working with latitudes and longitudes.
- geo β571 π 1329 β A collection of GIS functions for Elixir.
GUI
Libraries for writing Graphical User Interfaces.
- scenic β1838 π 994 β Portable 2D UI framework.
Hardware
Hardware related things like I/O interfaces and such.
- nerves β2012 π 973 β 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 β1864 π 985 β A simple HTML parser that enables searching using CSS like selectors.
HTTP
Libraries for working with HTTP and scraping websites.
- Crawler β875 π 1517 β A high performance web crawler in Elixir.
- Crawly β691 π 973 β high-level web crawling & scraping framework for Elixir.
- elli β666 π 2842 β Elli is a webserver you can run inside your Erlang application to expose an HTTP API.
- exvcr β647 π 961 β HTTP request/response recording library for Elixir, inspired by VCR.
- finch β1048 π 971 β An HTTP client with a focus on performance, built on top of Mint and NimblePool.
- gun β837 π 986 β HTTP/1.1, HTTP/2 and Websocket client for Erlang/OTP.
- hackney β1272 π 991 β Simple HTTP client written in Erlang.
- httpoison β2141 π 983 β Yet Another HTTP client for Elixir powered by hackney.
- httpotion β729 π 1225 β Fancy HTTP client for Elixir, based on ibrowse.
- mint β1227 π 964 β Functional HTTP client for Elixir with support for HTTP/1 and HTTP/2.
- mochiweb β1837 π 964 β MochiWeb is an Erlang library for building lightweight HTTP servers.
- tesla β1820 π 982 β HTTP client library, with support for middleware and multiple adapters.
Images
Libraries for working with and manipulating images.
- mogrify β533 π 1205 β An Elixir wrapper for ImageMagick command line.
Instrumenting / Monitoring
Libraries for collecting and exporting metrics.
- elixometer β818 π 1357 β A light Elixir wrapper around exometer.
- exometer β520 π 3591 β Basic measurement objects and probe behavior in Erlang.
- telemetry β811 π 985 β Dynamic dispatching library for metrics and instrumentations.
- wobserver β927 π 3057 β Web based metrics, monitoring, and observer.
JSON
Libraries and implementations working with JSON.
- ja_serializer β633 π 964 β JSONAPI.org Serialization in Elixir.
- jason β1439 π 1150 β A blazing fast JSON parser and generator in pure Elixir.
- joken β704 π 1044 β Encodes and decodes JSON Web Tokens.
- jsx β678 π 1447 β An Erlang application for consuming, producing, and manipulating json.
- poison β1972 π 1473 β 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 β1140 π 2093 β Compiler allowing to translate Elm programming language code to Elixir.
Macros
Macros for faster and easier development. Sugar for your code.
- typed_struct β664 π 1393 β An Elixir library for defining structs with a type without writing boilerplate code.
Markdown
Libraries and tools working with Markdown and such.
- earmark β782 π 1010 β Markdown parser for Elixir.
Miscellaneous
Useful libraries or tools that donβt fit in the categories above.
- AtomVM β1147 π 960 β AtomVM allows to run Elixir/Erlang code on embedded devices such as ESP32 and STM32 microcontrollers.
- hammer β534 π 960 β A rate-limiter with pluggable storage backends, including Redis.
- porcelain β904 π 1875 β 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 β3714 π 965 β Library for writing NIFs for Erlang or Elixir safely in Rust. No segfaults.
Networking
Libraries and tools for using network related stuff.
- Firezone β4044 π 962 β Open-source VPN server and egress firewall for Linux built on WireGuard. Firezone is easy to set up (all dependencies are bundled thanks to Chef Omnibus), secure, performant, and self hostable.
- socket β677 π 2184 β Socket wrapping for Elixir.
ORM and Datamapping
Libraries that implement object-relational mapping or datamapping techniques.
- amnesia β678 π 2184 β Mnesia wrapper for Elixir.
- ecto β5729 π 964 β A database wrapper and language integrated query for Elixir.
- ecto_enum β558 π 1876 β Ecto extension to support enums in models.
- eredis β617 π 2507 β Erlang Redis client.
- eventstore β940 π 1005 β A CQRS EventStore using Postgres for persistence, written in Elixir.
- memento β692 π 1381 β Simple Mnesia Interface in Elixir.
- moebius β553 π 1168 β A functional query tool for Elixir and PostgreSQL.
- mongodb β545 π 992 β MongoDB driver for Elixir.
- paper_trail β513 π 1085 β Ecto plugin for tracking and recording all the changes in your database.
- postgrex β987 π 971 β PostgreSQL driver for Elixir.
- redix β999 π 964 β Superfast, pipelined, resilient Redis driver for Elixir.
Protocols
Special protocol and format libraries.
- grpc-elixir β1217 π 1001 β The Elixir implementation of gRPC.
Queue
Libraries for working with event and task queues.
- amqp β638 π 1141 β Simple Elixir wrapper for the Erlang RabbitMQ client, based on Langohr.
- broadway β2069 π 962 β Concurrent and multi-stage data ingestion and data processing with Elixir.
- exq β1414 π 1048 β Job processing library for Elixir - compatible with Resque/Sidekiq.
- honeydew β708 π 1664 β Honeydew is a worker pool library for Elixir.
- oban β2564 π 964 β Robust asynchronous job processor powered by Elixir and modern PostgreSQL.
- que β644 π 1381 β Simple Background Job Processing with Mnesia.
- verk β710 π 1547 β 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 β2942 π 963 β A pure Elixir implementation of release packaging functionality for the Erlang VM.
- exrm β926 π 3092 β Automatically generate a release for your Elixir project.
REST and API
Libraries and web tools for developing REST-ful APIs.
- maru β1312 π 2331 β Elixir copy of grape for creating REST-like APIs.
Security
Libraries and tools regarding security.
- Ockam β3069 π 962 β A suite of tools, programming libraries and infrastructure that make it easy to build devices that communicate securely, privately and trustfully with cloud services and other devices. Docs .
- sobelow β1449 π 982 β Security-focused static analysis for the Phoenix Framework.
Testing
Libraries for testing codebases and generating test data.
- bypass β884 π 1813 β Bypass provides a quick way to create a mock HTTP server with a custom plug.
- espec β792 π 1054 β BDD test framework for Elixir inspired by RSpec.
- ex_machina β1808 π 1140 β Flexible test factories for Elixir. Works out of the box with Ecto and Ecto associations.
- faker β947 π 1121 β Faker is a pure Elixir library for generating fake data.
- hound β1325 π 1889 β Elixir library for writing integration tests and browser automation.
- meck β784 π 986 β A mocking library for Erlang.
- mix_test_watch β850 π 1099 β Automatically run your Elixir projectβs tests each time you save a file.
- mock β594 π 1386 β Mocking library for the Elixir language.
- mox β1180 π 1023 β Mocks and explicit contracts for Elixir.
- proper β851 π 979 β PropEr (PROPerty-based testing tool for ERlang) is a QuickCheck-inspired open-source property-based testing tool for Erlang.
- wallaby β1466 π 980 β 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 β722 π 978 β 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 β696 π 1070 β This repository contains all the client libraries to interact with Google APIs.
- pigeon β563 π 1024 β HTTP2-compliant wrapper for sending iOS and Android push notifications.
- slack β650 π 1219 β Slack real time messaging client in Elixir.
- stripity_stripe β808 π 962 β An Elixir Library for Stripe.
Validations
Libraries and implementations for validation of data.
- vex β563 π 1616 β An extensible data validation library for Elixir.
WebAssembly
Libraries for running WebAssembly (WASM) in Elixir or running Elixir on WebAssembly.
- lumen β3381 π 997 β An alternative BEAM implementation, designed for WebAssembly.