Contents
Actors
Libraries and tools for working with actors and such.
- alf β132 π 1008 β Flow-based Application Layer Framework.
- bpe β241 π 991 β Business Process Engine in Erlang. (Doc).
- exactor β670 π 2134 β Helpers for easier implementation of actors in Elixir.
- poolboy β1489 π 2621 β A hunky Erlang worker pool factory.
- pooler β283 π 963 β An OTP Process Pool Application.
- sbroker β158 π 3151 β Sojourn-time based active queue management library.
Algorithms and Data structures
Libraries and implementations of algorithms and data structures.
- aja β121 π 1005 β High performance persistent vectors and ordered maps.
- bloomex β111 π 1645 β A pure Elixir implementation of Scalable Bloom Filters.
- datastructures β210 π 3179 β A collection of protocols, implementations and wrappers to work with data structures.
- erlang-algorithms β146 π 2786 β Implementations of popular data structures and algorithms.
- exconstructor β267 π 1012 β An Elixir library for generating struct constructors that handle external data with ease.
- flow β1389 π 994 β Computational parallel flows on top of GenStage.
- fsm β352 π 2134 β Finite state machine as a functional data structure.
- fuse β478 π 1622 β This application implements a so-called circuit-breaker for Erlang.
- loom β219 π 3168 β A CRDT library with Ξ΄-CRDT support.
- machinery β477 π 980 β A state machine library for structs in general, it integrates with Phoenix out of the box.
- matrex β472 π 1978 β A blazing fast matrix library for Elixir/Erlang with C implementation using CBLAS.
- monadex β299 π 2850 β Upgrade your Elixir pipelines with monads.
- remodel β139 π 3091 β An Elixir presenter package used to transform map structures.
- trie β129 π 1154 β Erlang Trie Implementation.
- witchcraft β1149 π 1404 β Common algebraic structures and functions for Elixir.
Applications
Standalone applications.
- CaptainFact β176 π 1066 β A collaborative, real-time video fact-checking platform. (Docs).
- Consolex β117 π 3469 β Consolex is a tool that allows you to attach a web based console to any mix project.
- exchat β257 π 3215 β A Slack-like app by Elixir, Phoenix & React (redux).
- ExShop β219 π 3353 β Digital goods shop & blog created using Phoenix framework.
- Phoenix Battleship β520 π 3370 β The Good Old game built with Elixir, Phoenix Framework, React and Redux.
- Phoenix Toggl β171 π 3548 β Toggl tribute done in 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.
- Sprint Poker β175 π 3051 β Online estimation tool for Agile teams, written using Elixir Lang, Phoenix Framework and React.
- Tai β421 π 1162 β A composable, real time, cryptocurrency market data and trade execution toolkit.
- tty2048 β155 π 3463 β Terminal-based 2048 game written in Elixir.
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.
- simple_bayes β387 π 3054 β A Simple Bayes / Naive Bayes implementation in Elixir.
Authentication
Libraries for implementing authentication schemes.
- basic_auth β164 π 2020 β Elixir Plug to easily add HTTP basic authentication to an app.
- coherence β1238 π 1643 β Coherence is a full featured, configurable authentication system for Phoenix. (Docs).
- doorman β119 π 2518 β Tools to make Elixir authentication simple and flexible.
- elixir_auth_google β155 π 983 β The simplest way to add Google OAuth authentication (βSign in with Googleβ) to your Elixir/Phoenix app.
- goth β257 π 992 β OAuth 2.0 library for server to server applications via Google Cloud APIs.
- guardian β3312 π 1111 β An authentication framework for use with Elixir applications. (Docs).
- guardian_db β343 π 1428 β An extension to Guardian that tracks tokens in your applicationβs database to prevent playback. (Docs).
- oauth2 β698 π 1044 β An OAuth 2.0 client library for Elixir.
- phauxth β414 π 1419 β Authentication library for Phoenix 1.3 and other Plug-based apps.
- 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).
- samly β117 π 2424 β SAML SP SSO made easy (Doc).
- ueberauth β1471 π 1005 β An Elixir Authentication System for Plug-based Web Applications.
- ueberauth_google β149 π 1121 β A Google strategy for Γberauth.
Authorization
Libraries for implementing Authorization handling.
- bodyguard β673 π 1467 β A flexible authorization library for Phoenix applications.
- canada β431 π 1693 β A simple authorization library that provides a friendly interface using declarative permission rules.
- canary β464 π 1587 β An authorization library for Elixir applications that restricts what resources the current user is allowed to access. (Docs).
Behaviours and Interfaces
Definitions how something should behave, like Interfaces from OOP-World
- connection β260 π 1031 β Connection behaviour for connection processes. The API is superset of the GenServer API.
- gen_state_machine β283 π 1869 β Elixir wrapper for gen_statem.
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.
- mad β172 π 1341 β Small and Fast Rebar Replacement.
- reaxt β365 π 1285 β React template into your Elixir application for server rendering.
- relx β676 π 977 β A release assembler for Erlang.
- remix β147 π 3337 β Automatic recompilation of Mix code on file change.
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.
- locker β153 π 3648 β Atomic distributed βcheck and setβ for short-lived keys.
- memoize β167 π 1192 β A memoization macro that easily cache function.
- 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.
- alice β104 π 1546 β A Slack bot framework for Elixir.
- cog β921 π 1553 β Cog is an open chatops platform that gives you a secure, collaborative command line right in your chat window.
- ExGram β156 π 963 β a library to build Telegram Bots, you can use the low-level methods and models or use the really opinionated framework included. (Docs).
- ExIrc β147 π 1376 β IRC client adapter for Elixir projects.
- hedwig β648 π 2874 β XMPP Client/Bot Framework for Elixir.(Docs).
Cloud Infrastructure and Management
Applications, tools and libraries for your own cloud service.
- aws β445 π 962 β AWS clients for Elixir.
- Bonny β295 π 961 β Kubernetes Operator Development Framework.
- discovery β249 π 3696 β An OTP application for auto-discovering services with Consul.
- 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.
- IElixir β343 π 1725 β Jupyterβs kernel for Elixir programming language.
- k8s β269 π 962 β Kubernetes Elixir client with CRD support, multi-cluster support, pluggable auth, and configurable middleware.
- Kazan β136 π 1132 β Kubernetes client for Elixir, generated from the k8s open API specifications.
- libcluster β1727 π 1048 β Automatic cluster formation/healing for Elixir applications.(Docs).
- sidejob β102 π 1084 β Parallel worker and capacity limiting library for Erlang.
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).
- dogma β471 π 2881 β A code style linter for Elixir, powered by shame.(Docs).
- excellent_migrations β152 π 1115 β Detecting potentially dangerous operations in database migrations.
- excoveralls β766 π 988 β Coverage report tool for Elixir with coveralls.io integration.
- exprof β172 π 1818 β A simple code profiler for Elixir, using eprof.
- ex_check β284 π 1100 β One task to efficiently run all code analysis & testing tools in an Elixir project.
Command Line Applications
Anything helpful for building CLI applications.
- anubis β130 π 3214 β Command-Line application framework for Elixir.
- ex_cli β211 π 2417 β User friendly CLI apps for Elixir.
- getopt β244 π 999 β Command-line options parser for Erlang.
- owl β350 π 991 β Owl is a toolkit for writing command-line user interfaces in Elixir.
- progress_bar β314 π 1611 β Command-line progress bars and spinners.
- ratatouille β633 π 1514 β A TUI (terminal UI) kit for Elixir.
- scribe β275 π 1435 β Pretty-print tables of Elixir structs and maps. Inspired by hirb.
- table_rex β195 π 1774 β Generate configurable ASCII style tables for display.
Configuration
Libraries and tools working with configurations
- confex β296 π 1846 β Helper module that provides a nice way to read environment configuration at runtime.
- conform β379 π 2686 β Easy release configuration for Elixir apps.
- dotenv β213 π 1643 β A port of dotenv to Elixir.
- hush β121 π 1089 β Read and inject configuration at runtime, and in release mode with support for multiple providers.
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).
-
ex_crypto
β131
π
1406
β
Elixir wrapper for Erlang
cryptoandpublic_keymodules. Provides sensible defaults for many crypto functions to make them easier to use.(Docs). - nimble_totp β321 π 989 β Allows implementation of Time-based One-Time Passwords (TOTP) for 2FA.
- pot β229 π 1585 β Erlang library for generating one time passwords compatible with Google Authenticator.
CSV
Libraries and implementations working with CSV.
- csv β456 π 1102 β CSV Decoding and Encoding for Elixir.
- 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.
- calendar β454 π 2296 β Calendar is a date and time library for Elixir.
- cocktail β140 π 1069 β Elixir date recurrence library based on iCalendar events.
- filtrex β188 π 2034 β A library for performing and validating complex SQL-like filters from a client (e.g. smart filters).
- quantum β2112 π 979 β Cron-like job scheduler for Elixir applications.
- timex β1674 π 991 β Easy to use Date and Time modules for Elixir.
- tzdata β264 π 1360 β The timezone database in Elixir.
Debugging
Libraries and tools for debugging code and applications.
- beaker β282 π 1431 β Statistics and Metrics library for Elixir.
- dbg β161 π 3151 β Distributed tracing for Elixir.
- eflame β411 π 2639 β Flame Graph profiler for Erlang.
- eper β436 π 2713 β Erlang performance and debugging tools.
- ex_debug_toolbar β401 π 2808 β A toolbar for Phoenix projects to interactively debug code and display useful information about requests: logs, timelines, database queries etc.
- exrun β116 π 1251 β Distributed tracing for Elixir with rate limiting and simple macro-based interface.
- git_hooks β139 π 985 β Add git hooks to Elixir projects.
- observer_cli β1253 π 1112 β Visualize Elixir & Erlang nodes on the command line, it aims to helpe developers debug production systems.
-
rexbug
β224
π
990
β
An Elixir wrapper for the
redbugproduction-friendly Erlang tracing debugger. - visualixir β1268 π 2282 β A process visualizer for remote BEAM nodes.
Deployment
Installing and running your code automatically on other machines.
- ansible-elixir-stack β293 π 3446 β 1-command setup & deploys to servers, with first-class support for Phoenix apps.
- bootleg β394 π 1862 β Simple deployment and server automation for Elixir.
- edeliver β1955 π 1251 β Deployment for Elixir and Erlang.
- elixir-on-docker β168 π 2870 β A project template to get started developing clustered Elixir applications for cloud environments.
- 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.
- bureaucrat β336 π 1008 β Generate Phoenix API documentation from tests.
- 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.
- mail β369 π 1295 β An RFC2822 implementation in Elixir, built for composability.
- mailman β195 π 1182 β Mailman provides a clean way of defining mailers in your Elixir applications.
- ravenx β107 π 2852 β Notification dispatch library for Elixir applications.
- 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.
- exceptional β279 π 2182 β Helpers for happy-path programming & exception handling.
-
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.
- AppSignal Elixir β246 π 966 β The official AppSignal package for Elixir.
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.
- reaxive β277 π 2849 β Reaxive is a reactive event handling library, inspired by Elm and Reactive Extensions.
Examples and funny stuff
Example code and stuff too funny or curious not to mention.
- changelog.com β2535 π 963 β CMS that runs changelog.com built with Phoenix 1.4.
- coderplanets.com β221 π 1142 β GraphQL api for coderplanets.com built with Phoenix 1.4 and Absinthe.
- elixir_koans β1960 π 1013 β Elixir koans is a fun, easy way to get started with the elixir programming language.
- hello_phoenix β130 π 3548 β Application template for SPAs with Phoenix, React and Redux.
- hexpm β983 π 972 β Source code for the hex package manager site built with Phoenix 1.3.
- koans β246 π 3549 β Learn Elixir by using elixir-koans.
- magnetissimo β2777 π 969 β Web application that indexes all popular torrent sites, and saves it to the local database.
- oop β292 π 1631 β OOP in Elixir!
-
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. - phoenix-ecto-encryption-example β248 π 967 β A comprehensive example/tutorial showing people how to use Ecto Types to transparently encrypt/decrypt data in a Phoenix 1.4 app.
- phoenix-flux-react β160 π 3895 β An experiment with Phoenix Channels, GenEvents, React and Flux.
-
phoenix-liveview-counter-tutorial
β277
π
967
β
complete beginners step-by-step tutorial building a real time counter in Phoenix
1.5.3and LiveView0.14.1. -
phoenix-todo-list-tutorial
β135
π
967
β
A complete beginners step-by-step tutorial for building a Todo List from scratch in Phoenix
1.5.3. - real world example app β879 π 2196 β Elixir / Phoenix implementation of RealWorld.io backend specs - a Medium clone.
- tilex β477 π 984 β Source code for Hashrocketβs TIL website built with Phoenix 1.3.
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.
- exfswatch β236 π 1193 β A file change watcher wrapper based on fs.
- fs β223 π 1263 β Erlang FileSystem Listener.
- waffle β630 π 1001 β Flexible file upload and attachment library for Elixir.
Framework Components
Standalone component from web development frameworks.
- absinthe_plug β249 π 986 β Plug support for Absinthe.
- addict β648 π 3136 β User authentication for Phoenix Framework.
- commanded β1687 π 1005 β Command handling middleware for Command Query Responsibility Segregation (CQRS) applications.
- cors_plug β386 π 1323 β An Elixir plug that adds CORS headers to requests and responds to preflight requests (OPTIONS).
- corsica β469 π 1055 β Elixir library for dealing with CORS requests.
-
dayron
β158
π
2982
β
A repository similar to
Ecto.Repothat works with REST API requests instead of a database. - ex_admin β1192 π 2791 β ExAdmin is an auto administration package for Elixir and the Phoenix Framework.
- filterable β100 π 1038 β Simple query params filtering for Phoenix framework inspired by Rails has_scope.
- kerosene β225 π 2553 β Pagination for Ecto and Phoenix.
- params β319 π 1338 β Use Ecto to enforce/validate parameters structure, akin to Railsβ strong parameters.
- passport β160 π 3114 β Passport provides authentication for Phoenix applications.
- phoenix_ecto β395 π 1051 β Phoenix and Ecto integration.
- phoenix_haml β157 π 3184 β Phoenix Template Engine for Haml.
- phoenix_html β341 π 985 β Phoenix.HTML functions for working with HTML strings and templates.
- phoenix_live_reload β257 π 983 β Provides live-reload functionality for Phoenix.
- phoenix_pubsub_redis β169 π 1639 β The Redis PubSub adapter for the Phoenix framework.
- phoenix_slime β305 π 1009 β Slim template support for Phoenix.
- phoenix_token_auth β164 π 3554 β Token authentication solution for Phoenix. Useful for APIs or single page apps.
- phx_component_helpers β118 π 1061 β Extensible live_components, without boilerplate.
- plug β2640 π 968 β A specification and conveniences for composable modules in between web applications.
- plug_graphql β126 π 3464 β Phoenix Plug integration for GraphQL Elixir.
- react_phoenix β486 π 1147 β Render React.js components in Phoenix views focusing on easy installation and Brunch compatibility.
- recaptcha β107 π 1536 β A simple reCaptcha 2 library for Elixir applications.
- rummage_ecto β209 π 1250 β A configurable framework to search, sort and paginate Ecto Queries.
- rummage_phoenix β149 π 1250 β A support framework for searching, sorting and paginating models in Phoenix, with HTML support.
- scrivener β550 π 1623 β Paginate your Ecto queries.
- scrivener_html β121 π 1308 β Helpers built to work with Scrivenerβs page struct to easily build HTML output for various CSS frameworks.
- sentinel β107 π 3032 β An authentication framework for Phoenix extending guardian with routing and other basic functionality.
- 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.
- placid β188 π 3240 β A REST toolkit for building highly-scalable and fault-tolerant HTTP APIs with Elixir.
- rackla β264 π 3362 β API Gateways in Elixir.
- relax β123 π 3578 β Simple Elixir implementation of a jsonapi.org server.
- RIG β557 π 1215 β Create low-latency, interactive user experiences for stateless microservices.
- sugar β419 π 3227 β Modular web framework for Elixir.
- trot β410 π 2283 β An Elixir web micro-framework.
Games
Libraries for and implementations of games.
- Binbo β105 π 1051 β A chess representation written in Erlang using Bitboards, ready for use on game servers.
- entice β114 π 3502 β A distributed Entity-Component-System framework, providing its own example MMORPG server.
Geolocation
Libraries for geocoding addresses and working with latitudes and longitudes.
- geo β571 π 1329 β A collection of GIS functions for Elixir.
- geocalc β125 π 1152 β Calculate distance, bearing and more between latitude/longitude points.
- geocoder β109 π 962 β A simple, efficient geocoder/reverse geocoder with a built-in cache.
-
geoip
β100
π
982
β
Find geolocation for a given IP, hostname or
Plug.Conn. - geolix β174 π 1252 β MaxMind GeoIP2 database reader/decoder.
- topo β134 π 1058 β A Geometry library for Elixir that calculates spatial relationships between two geometries.
GUI
Libraries for writing Graphical User Interfaces.
- scenic β1838 π 994 β Portable 2D UI framework.
Hardware
Hardware related things like I/O interfaces and such.
- elixir_ale β338 π 2513 β Elixir access to hardware I/O interfaces such as GPIO, I2C, and SPI.
- 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.
- html_sanitize_ex β228 π 1048 β HTML sanitizer for Elixir.
- meseeks β290 π 988 β A library for parsing and extracting data from HTML and XML with CSS or XPath selectors.
- readability β199 π 1144 β Readability is for extracting and curating articles.
HTTP
Libraries for working with HTTP and scraping websites.
- Ace β306 π 1844 β HTTP web server and client, supports http1 and http2.
- 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.
- neuron β311 π 1021 β A GraphQL client for Elixir.
- raxx β396 π 1860 β Interface for HTTP webservers, frameworks and clients.
- scrape β323 π 2118 β Scrape any website, article or RSS/Atom Feed with ease.
- tesla β1820 π 982 β HTTP client library, with support for middleware and multiple adapters.
- webdriver β119 π 3603 β This is an implementation of the WebDriver protocol client. It currently supports PhantomJS, FireFox, ChromeDriver and remote webdriver servers (e.g. Selenium).
Images
Libraries for working with and manipulating images.
- imagineer β118 π 2587 β Image parsing in Elixir.
- 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.
- instream β213 π 961 β InfluxDB driver for Elixir.
- prometheus β329 π 1062 β Prometheus.io monitoring system and time series database client in Erlang.
- prometheus.ex β396 π 1752 β Elixir-friendly Prometheus.io monitoring system and time series database client.
- prom_ex β496 π 964 β Prometheus metrics and Grafana dashboards for all of your favorite Elixir libraries.
- spandex β314 π 1145 β Platform agnostic tracing library originally developed for Datadog APM.
- 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.
- jose β274 π 1089 β JSON Object Signing and Encryption (JOSE) for Erlang and Elixir.
- json β219 π 1805 β Native JSON library for Elixir.
- json_web_token_ex β140 π 3074 β An Elixir implementation of the JSON Web Token (JWT) Standards Track (RFC 7519).
- jsonapi β461 π 967 β A project that will render your data models into JSONAPI Documents.
- 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.
- Monkey β126 π 1041 β Elixir implementation of an interpreter and REPL for the js-like Monkey programming language.
Logging
Logging infos and messages.
- ecto_dev_logger β130 π 1031 β An alternative logger for Ecto queries that helps in debugging.
- honeybadger β171 π 965 β Error logging to Honeybadger.
- logster β190 π 1093 β Easily parsable, one-line logging for Phoenix and Plug applications, inspired by Lograge.
- rollbax β242 π 1671 β Exception tracking and logging to Rollbar.
- timber β217 π 2399 β Structured logging platform; turns raw text logs into rich structured events.
Macros
Macros for faster and easier development. Sugar for your code.
- eventsourced β101 π 3130 β Build functional, event-sourced domain models.
- expat β175 π 2674 β Reusable, composable patterns across Elixir libraries.
- opus β342 π 1383 β A framework for pluggable business logic components.
- pathex β275 π 973 β Zero-dependency, blazing fast functional lenses.
- pipes β326 π 2648 β Macros for more flexible composition with the Elixir Pipe operator.
-
shorter_maps
β218
π
2912
β
~M sigil for map shorthand.
~M{id name} ~> %{id: id, name: name}. - 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.
- AlloyCI β290 π 1631 β AlloyCI is a Continuous Integration, Deployment, and Delivery coordinator, written in Elixir, that takes advantage of the GitLab CI Runner, and its capabilities as executor, to prepare and run your pipelines.
- Apex β275 π 2681 β Awesome Print for Elixir.
- AtomVM β1147 π 960 β AtomVM allows to run Elixir/Erlang code on embedded devices such as ESP32 and STM32 microcontrollers.
- codec-beam β169 π 1743 β Generate Erlang VM byte code from Haskell.
- Countries β138 π 1677 β Countries is a collection of all sorts of useful information for every country in the ISO 3166 standard.
- cubdb β429 π 971 β CubDB is an embedded key-value database, written in the Elixir language. It runs locally, it is schema-less, and backed by a single file.
- ecto_autoslug_field β143 π 971 β Automatically creates slugs for your Ecto models.
-
ex2ms
β171
π
1453
β
Translates Elixir functions to match specifications for use with
ets. - ex_phone_number β216 π 966 β Format, normalize, and validate phone numbers.
- ex_rated β425 π 1314 β Simple and flexible rate-limiting for APIβs or anything.
- exsync β122 π 1410 β Yet another Elixir reloader.
- hammer β534 π 960 β A rate-limiter with pluggable storage backends, including Redis.
- phone β103 π 1119 β A parser to get useful info from telephone numbers.
- porcelain β904 π 1875 β Porcelain implements a saner approach to launching and communicating with external OS processes from Elixir.
- spotify_ex β144 π 1051 β An Elixir wrapper for the Spotify Web API.
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.
Natural Language Processing (NLP)
Tools and libraries that work with human (natural) languages.
- Paasaa β108 π 964 β Natural language detection for Elixir.
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.
- sshex β150 π 1829 β Simple SSH helpers for Elixir.
- sshkit β127 π 1063 β An Elixir toolkit for performing tasks on one or more servers, built on top of Erlangβs SSH application.
Office
Libraries for working with office suite documents.
- elixlsx β236 π 1293 β A writer for XLSX files.
- xlsxir β195 π 1056 β 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.
ORM and Datamapping
Libraries that implement object-relational mapping or datamapping techniques.
- amnesia β678 π 2184 β Mnesia wrapper for Elixir.
- arbor β222 π 1200 β Ecto adjacency list and tree traversal.
- arc_ecto β251 π 2190 β Arc.Ecto provides an integration with Arc and Ecto.
- atlas β213 π 4131 β Object Relational Mapper for Elixir.
- Bolt.Sips β242 π 1144 β Neo4j driver for Elixir using the Bolt protocol.
- boltun β133 π 3119 β Transforms notifications from the Postgres LISTEN/NOTIFY mechanism into callback execution.
- defql β102 π 2677 β Create elixir functions with SQL as a body.
- ecto β5729 π 964 β A database wrapper and language integrated query for Elixir.
- ecto_enum β558 π 1876 β Ecto extension to support enums in models.
- ecto_fixtures β168 π 2068 β Fixtures for Elixir apps using Ecto.
- ecto_mnesia β239 π 1967 β Ecto adapter for Mnesia Erlang term database.
- ecto_psql_extras β327 π 965 β Ecto PostgreSQL database performance insights.
- ecto_rut β112 π 2672 β Simple and Powerful Ecto Shortcuts to simplify and speed up development.
- elastix β251 π 1663 β A simple Elastic REST client written in Elixir.
- eredis β617 π 2507 β Erlang Redis client.
- erlastic_search β158 π 2119 β An Erlang app for communicating with Elastic Searchβs rest interface.
- esqlite β116 π 1018 β Erlang NIF for sqlite.
- eventstore β940 π 1005 β A CQRS EventStore using Postgres for persistence, written in Elixir.
- exredis β357 π 2522 β Redis client for Elixir.
- extreme β124 π 2352 β An Elixir library using Eventstore for persistence of events generated by aggregates (CQRS).
- github_ecto β121 π 3177 β Ecto adapter for GitHub API.
- inquisitor β168 π 1984 β Composable query builder for Ecto.
- kalecto β142 π 2672 β Glue between Kalends and Ecto for saving dates, times and datetimes.
- kvs β170 π 991 β Erlang Abstract Term Database.
- mariaex β259 π 2553 β MariaDB/MySQL driver for Elixir.
- memento β692 π 1381 β Simple Mnesia Interface in Elixir.
- moebius β553 π 1168 β A functional query tool for Elixir and PostgreSQL.
- mongo β100 π 3661 β MongoDB driver for Elixir.
- mongodb β545 π 992 β MongoDB driver for Elixir.
- mongodb_driver β181 π 967 β Alternative driver for MongoDB with support for recent versions of MongoDB and comprehensive feature list.
- mongodb_ecto β350 π 992 β MongoDB adapter for Ecto.
- mysql β348 π 1336 β MySQL/OTP β MySQL driver for Erlang/OTP.
- 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.
- rethinkdb β498 π 2569 β Rethinkdb client in pure Elixir using JSON protocol.
- riak β197 π 2808 β A Riak client written in Elixir.
- shards β285 π 989 β Transparent and out-of-box Sharding support for Erlang/Elixir ETS tables.
- sql_dust β115 π 1652 β Generate (complex) SQL queries using magical Elixir SQL dust.
- sqlitex β118 π 1727 β An Elixir wrapper around esqlite. Allows access to sqlite3 databases.
- tds β101 π 1092 β MSSQL / TDS Database driver for Elixir.
- timex_ecto β160 π 2353 β An adapter for using Timex DateTimes with Ecto.
- tirexs β427 π 2118 β An Elixir flavored DSL for building JSON based requests to Elasticsearch engine.
- triplex β390 π 1583 β Database multitenancy with postgres schemas for Elixir applications!
- xandra β332 π 969 β Cassandra driver built natively in Elixir and focused on speed, simplicity, and robustness.
OTP
Libraries for working with OTP related things.
- erlexec β475 π 1022 β Execute and control OS processes from Erlang/OTP.
- immortal β171 π 1759 β Immortal is a small collection of helper modules intended to make it easier to build a fault-tolerant OTP application.
Libraries and software for working with PDF files.
- chromic_pdf β236 π 964 β A client for Chromeβs DevTools API to generate PDFs (HTML to PDF).
- gutenex β240 π 2587 β Native PDF generation for Elixir.
- pdf_generator β301 π 1182 β A simple wrapper for wkhtmltopdf or puppeteer (HTML to PDF) for use in Elixir projects.
Protocols
Special protocol and format libraries.
- exprotobuf β477 π 2338 β Protocol Buffers in Elixir, made easy.
- grpc-elixir β1217 π 1001 β The Elixir implementation of gRPC.
- msgpax β260 π 1056 β MessagePack (de)serializer implementation for Elixir.
- protox β235 π 974 β Elixir implementation for Protocol Buffers.
- riffed β300 π 2000 β Provides idiomatic Elixir bindings for Apache Thrift.
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.
- conduit β124 π 1626 β A framework for working with message queues, with adapters for SQS and AMQP, and plugs for reusable messaging patterns.
- ecto_job β267 π 1446 β A transactional job queue built with Ecto, PostgreSQL and GenStage.
- enm β120 π 2945 β enm is an Erlang port driver that wraps the nanomsg C library.
- exq β1414 π 1048 β Job processing library for Elixir - compatible with Resque/Sidekiq.
- gen_rmq β178 π 1027 β Set of behaviours meant to be used to create RabbitMQ consumers and publishers.
- honeydew β708 π 1664 β Honeydew is a worker pool library for Elixir.
- hulaaki β114 π 1996 β An MQTT 3.1.1 client library written in Elixir.
- kaffe β142 π 1327 β Kafka client library for Elixir.
- oban β2564 π 964 β Robust asynchronous job processor powered by Elixir and modern PostgreSQL.
- opq β225 π 1128 β A simple, in-memory queue with worker pooling and rate limiting in Elixir.
- pqueue β168 π 1154 β Erlang Priority Queue Implementation.
- que β644 π 1381 β Simple Background Job Processing with Mnesia.
- Rihanna β425 π 1501 β High performance postgres-backed job queue for Elixir.
- task_bunny β200 π 2589 β background processing application written in Elixir and uses RabbitMQ as a messaging backend.
- toniq β340 π 2854 β Simple and reliable background job library for Elixir.
- verk β710 π 1547 β Verk is a job processing system backed by Redis. It uses the same job definition of Sidekiq/Resque.
QUIC
*Libraries and tools for QUIC transport layer network protocol
- quicer β162 π 998 β QUIC protocol erlang library.
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.
- mix_docker β335 π 2742 β Put your Elixir app production release inside minimal docker image.
REST and API
Libraries and web tools for developing REST-ful APIs.
- maru β1312 π 2331 β Elixir copy of grape for creating REST-like APIs.
- SOAP client β119 π 1336 β Hex-documented SOAP client based on HTTPoison.
Search
Libraries related to search indexing, search algorithms and search clients.
- elasticsearch β401 π 1165 β A simple, no-nonsense Elasticsearch library for Elixir.
- elasticlunr β172 π 1374 β A small, full-text search library for use in the Elixir environment.
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.
Static Page Generation
Tools and libraries for generating static websites and content.
- NimblePublisher β355 π 981 β Minimal filesystem-based publisher with markdown and syntax highlighting.
- pardall_markdown β104 π 980 β Reactive publishing framework, filesystem-based with support for Markdown, nested hierarchies, and instant content rebuilding.
- obelisk β388 π 3213 β Static blog and website generator.
- serum β298 π 1192 β A simple static website generator written in Elixir.
Statistics
Libraries around the topic statistics.
- numerix β179 π 1653 β A collection of useful mathematical functions with a slant towards statistics, linear algebra and machine learning.
- statistics β130 π 1475 β Some basic statistical functions for Elixir.
Templating
Libraries parsing and helping with templates
- bbmustache β168 π 1215 β Binary pattern match Based Mustache template engine for Erlang/OTP.
- calliope β192 π 3172 β An Elixir HAML parser.
- eml β115 π 1126 β Library for writing and manipulating (HTML) markup in Elixir.
- slime β346 π 1468 β An Elixir library for rendering slim-like templates.
- temple β416 π 1053 β An HTML DSL for Elixir and Phoenix.
Testing
Libraries for testing codebases and generating test data.
- amrita β199 π 3077 β A polite, well mannered and thoroughly upstanding testing framework for Elixir.
- blacksmith β189 π 1063 β Data generation framework for Elixir.
- bypass β884 π 1813 β Bypass provides a quick way to create a mock HTTP server with a custom plug.
- chaperon β107 π 1336 β An HTTP service performance & load testing framework written in Elixir.
- espec β792 π 1054 β BDD test framework for Elixir inspired by RSpec.
- espec_phoenix β134 π 1293 β ESpec for Phoenix web framework.
- ex_machina β1808 π 1140 β Flexible test factories for Elixir. Works out of the box with Ecto and Ecto associations.
- ex_unit_notifier β116 π 1604 β Desktop notifications for ExUnit.
- excheck β317 π 2633 β Property-based testing library for Elixir (QuickCheck style).
- faker β947 π 1121 β Faker is a pure Elixir library for generating fake data.
- faker_elixir β149 π 1297 β FakerElixir is an Elixir package that generates fake data for you.
- hound β1325 π 1889 β Elixir library for writing integration tests and browser automation.
- katt β116 π 996 β KATT (Klarna API Testing Tool) is an HTTP-based API testing tool for Erlang.
- 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.
- patch β129 π 1014 β Ergonomic Mocking for Elixir.
- pavlov β128 π 3596 β BDD framework for your Elixir projects.
- ponos β154 π 1502 β Ponos is an Erlang application that exposes a flexible load generator API.
- power_assert β208 π 1070 β Power Assert in Elixir. Shows evaluation results each expression.
- propcheck β336 π 1204 β Property based testing for Elixir.
- proper β851 π 979 β PropEr (PROPerty-based testing tool for ERlang) is a QuickCheck-inspired open-source property-based testing tool for Erlang.
- shouldi β135 π 3438 β Elixir testing libraries with nested contexts, superior readability, and ease of use.
- wallaby β1466 π 980 β Wallaby helps test your web applications by simulating user interactions concurrently and manages browsers.
- white_bread β216 π 1861 β Story based BDD in Elixir using the gherkin syntax.
Text and Numbers
Libraries for parsing and manipulating text and numbers.
- decimal β420 π 1115 β Arbitrary precision decimal arithmetic for Elixir.
- hashids β263 π 1047 β Hashids lets you obfuscate numerical identifiers via reversible mapping.
- inflex β369 π 1335 β An Inflector library for Elixir.
- money β722 π 978 β Working with Money safer, easier, and fun, interpretation of the Fowlerβs Money pattern.
- nanoid β189 π 1783 β Elixir port of NanoID, a secure and URL-friendly unique ID generator.
- number β207 π 969 β Number is a pretentiously-named Elixir library which provides functions to convert numbers into a variety of different formats.
- slugger β156 π 2737 β Slugger can generate slugs from given strings that can be used in URLs or file names.
- stemmer β145 π 1430 β An English (Porter2) stemming implementation in Elixir.
-
ua_inspector
β104
π
979
β
User agent parser library like
piwik/device-detector. - uuid β346 π 2238 β UUID generator and utilities for Elixir.
- uuid_erl β207 π 1034 β Erlang Native UUID Generation.
Third Party APIs
Libraries for accessing third party APIs.
- commerce_billing β177 π 3310 β A payment-processing library for Elixir that supports multiple gateways (e.g. Bogus & Stripe).
- ethereumex β349 π 994 β Elixir JSON-RPC client for the Ethereum blockchain.
- ex_twilio β317 π 1645 β Twilio API client for Elixir.
- extwitter β401 π 1138 β Twitter client library for Elixir.
- facebook β133 π 2174 β Facebook Graph API Wrapper written in Elixir.
- google-cloud β696 π 1070 β This repository contains all the client libraries to interact with Google APIs.
- gringotts β448 π 988 β A complete payment library for Elixir and Phoenix Framework similar to ActiveMerchant from the Ruby world.
- mailgun β190 π 3560 β Elixir Mailgun Client.
- nadia β363 π 1488 β Telegram Bot API Wrapper written in Elixir.
- pigeon β563 π 1024 β HTTP2-compliant wrapper for sending iOS and Android push notifications.
- slack β650 π 1219 β Slack real time messaging client in Elixir.
- statix β252 π 2051 β Expose app metrics in the StatsD protocol.
- stripity_stripe β808 π 962 β An Elixir Library for Stripe.
- tentacat β424 π 1583 β Simple Elixir wrapper for the GitHub API.
Translations and Internationalizations
Libraries and tools providing translations or internationalizations.
- gettext β401 π 1001 β Internationalization and localization support for Elixir.
- linguist β173 π 1581 β Elixir Internationalization library.
- trans β211 π 1026 β A Elixir library to manage embedded translations into models leveraging PostgreSQL JSONB datatype.
Utilities
Utilities libraries.
- async_with β152 π 1681 β A modifier for Elixirβs βwithβ to execute all its clauses in parallel.
- crutches β124 π 2999 β Utility library for Elixir, designed to complement the standard library bundled with the language.
- erlang-history β496 π 2839 β Hacks to add shell history to Erlangβs shell.
- erlware_commons β215 π 1450 β Additional standard library for Erlang.
- quark β319 π 1410 β A library for common functional programming idioms: combinators, currying, and partial application.
- retry β415 π 972 β Simple Elixir macros for linear retry, exponential backoff and wait with composable delays.
Validations
Libraries and implementations for validation of data.
- exop β208 π 1640 β A library that allows to encapsulate business logic and validate params with predefined contract.
- skooma β136 π 1163 β Simple data validation library for describing and validating data structures.
- vex β563 π 1616 β An extensible data validation library for Elixir.
Video
Libraries for working with and manipulating video and multimedia.
- ffmpex β195 π 1275 β FFmpeg command line wrapper.
WebAssembly
Libraries for running WebAssembly (WASM) in Elixir or running Elixir on WebAssembly.
- lumen β3381 π 997 β An alternative BEAM implementation, designed for WebAssembly.
XML
Libraries and implementations working with XML (for html tools please go to the HTML section).
- erlsom β261 π 1078 β Erlsom is an Erlang library to parse (and generate) XML documents.
- fast_xml β123 π 1317 β Fast Expat based Erlang XML parsing library.
- meeseeks β290 π 988 β A library for parsing and extracting data from HTML and XML with CSS or XPath selectors.
- saxy β243 π 1125 β Saxy is an XML parser and encoder in Elixir that focuses on speed and standard compliance.
- sweet_xml β334 π 1338 β Query XML simply and effectively.
- xml_builder β158 π 1334 β Elixir library for generating xml.
YAML
Libraries and implementations working with YAML.
- yamerl β194 π 1375 β YAML 1.2 parser in Erlang.
- yaml_elixir β154 π 1301 β Yaml parser for Elixir based on native Erlang implementation.