Skip to main content

Elixir libraries

Web​

  • Mint - Functional HTTP client for Elixir with support for HTTP/1 and HTTP/2.
  • Mint.WebSocket - HTTP/1 and HTTP/2 WebSocket support for Mint.
  • Req - HTTP client with a focus on ease of use and composability, built on top of Finch.
  • Finch - HTTP client with a focus on performance, built on top of Mint and NimblePool.
  • Ash - Resource based framework for building Elixir applications.
  • SiteEncrypt - Integrated certification via Let's encrypt for Elixir-powered sites.
  • ExVCR - Record and replay HTTP interactions library for Elixir.
  • WebSockex - Elixir Websocket Client.
  • Tesla - Flexible HTTP client library for Elixir, with support for middleware and multiple adapters.
  • Mojito - Easy-to-use Elixir HTTP client, built on the low-level Mint library.
  • elixir-auth-google - Minimalist Google OAuth Authentication for Elixir Apps.
  • Ace - HTTP web server and client, supports http1 and http2.
  • Raxx - Interface for HTTP webservers, frameworks and clients.
  • Corsica - Elixir library for dealing with CORS requests.
  • Plug - Specification and conveniences for composable modules between web applications.
  • Open API Spex - Open API Specifications for Elixir Plug applications.
  • Quenya - Framework to build high-quality REST API applications based on extended OpenAPI spec.
  • Bandit - HTTP server for Plug apps. (Article) (Talk)
  • ElixirST - Session Types in Elixir.
  • PardallMarkdown - Reactive publishing framework, filesystem-based with support for Markdown, nested hierarchies, and instant content rebuilding. Written in Elixir.
  • OAuth2 - Elixir OAuth 2.0 Client Library.
  • Joken - Elixir JWT library.
  • Ueberauth - Elixir Authentication System for Plug-based Web Applications.
  • Temple - HTML DSL for Elixir and Phoenix.
  • NimbleTOTP - Tiny Elixir library for time-based one time passwords (TOTP).
  • Canary - Elixir authorization and resource-loading library for Plug applications.
  • Riverside - Plain WebSocket Server Framework for Elixir.
  • ElixirRetry - Simple Elixir macros for linear retry, exponential backoff and wait with composable delays.
  • Webhoox - Deal with inbound webhooks.
  • Hologram - Full stack isomorphic Elixir web framework that can be used on top of Phoenix.
  • EasyHTML - Makes it easy to work with HTML in Elixir.
  • Riptide - Elixir framework for creating real time applications.
  • LetMe - Authorization library for Elixir.

DB​

  • Ecto - Toolkit for data mapping and language integrated query for Elixir. (Brief Guide to Ecto) (Tweet)
  • TypedEctoSchema - Library to define Ecto schemas with typespecs without all the boilerplate code.
  • Rummage.Ecto - Search, Sort and Pagination for ecto queries.
  • Paper Trail - Track and record all the changes in your database with Ecto. Revert back to anytime in history.
  • EctoMorph - Morphs your Ecto capabilities.
  • DBConnection - Database connection behavior.
  • Hierarch - Tree structure & hierarchy for ecto models with ltree (Postgres).
  • Excellent Migrations - Detect potentially dangerous or destructive operations in your database migrations.
  • Params - Easily define parameter structure and validate/cast with Ecto.Schema.
  • Postgrex - PostgreSQL driver for Elixir.
  • CubDB - Embedded key-value database written in the Elixir language.
  • Elixir driver for EdgeDB
  • Khepri - Tree-like replicated on-disk database library for Erlang and Elixir.
  • Ecto SQLite3 adapter
  • Honeydew - Job Queue for Elixir. Clustered or Local. Straight BEAM. Optional Ecto.
  • EctoJob - Transactional job queue built with Ecto and GenStage.
  • TaskBunny - Background processing application written in Elixir and uses RabbitMQ as a messaging backend.
  • litestream - Wraps Litestream so that SQLite databases can be easily backed up.
  • Paper Trail - Track and record all the changes in your database with Ecto. Revert back to anytime in history.
  • ExAudit - Ecto auditing library that transparently tracks changes and can revert them.
  • DataSchema - Declarative schemas for data transformations.
  • Fields - Collection of commonly used fields implemented as custom Ecto types with validation, sanitizing and encryption/hashing.
  • Spear - Sharp EventStoreDB 20+ client backed by Mint.
  • Yesql - Elixir library for using SQL.
  • Etso - Ecto 3 adapter allowing use of Ecto schemas held in ETS tables.
  • Triplex - Simple and effective way to build multitenant applications on top of Ecto.
  • Xandra - Fast, simple, and robust Cassandra driver for Elixir.
  • Pointers - One foreign key to rule them all and in the darkness, bind them.

Test​

  • Mox - Library for defining concurrent mocks in Elixir.
  • Hammox - Automated contract testing for Elixir functions and mocks.
  • PropCheck - Property based testing for Elixir.
  • Mock - Mocking library for Elixir language.
  • ExMachina - Create test data for Elixir applications.
  • Patch - Ergonomic Mocking for Elixir.
  • StreamData - Elixir library for data generation and property-based testing.
  • Machete - Literate test matchers for ExUnit.

ML​

  • Axon - Nx-powered Neural Networks. (HN)
  • Scholar - Machine learning tools built on top of Nx.

CLI​

  • Owl - Toolkit for writing command-line user interfaces.
  • Vexil - Elixir flag parser that does just enough.
  • Artificery - Toolkit for creating terminal user interfaces in Elixir.
  • ExTermbox - Low-level termbox bindings for Elixir.
  • ExCLI - User friendly CLI apps for Elixir.
  • CliSpinners - Spinnig Animations for Command Line Applications.

Math​

  • Statistics - Statistical functions and distributions for Elixir.

Livebook​

  • Kino - Client-driven interactive widgets for Livebook.

Crypto​

  • Cloak - Elixir encryption library designed for Ecto.

GraphQL​

  • BridgeEx - Library to build bridges to GraphQL services.
  • AbsintheCache - Caching Absinthe GraphQL queries.
  • CommonGraphqlClient - Elixir GraphQL Client with HTTP and WebSocket Support.
  • GQL - Simple GraphQL client for Elixir.

Other​

  • GraphQL toolkit for Elixir
  • Sage - Dependency-free tool to run distributed transactions in Elixir, inspired by Sagas pattern.
  • Timex - Complete date/time library for Elixir projects.
  • Core Scenic Library - Client application library written directly on the Elixir/Erlang/OTP stack. With it you can build applications that operate identically across all supported operating systems.
  • Benchee - Easy and extensible benchmarking in Elixir providing you with lots of statistics.
  • Opus - Framework for pluggable business logic components.
  • Pow - Robust, modular, and extendable user authentication system.
  • Rihanna - High performance postgres-backed job queue for Elixir.
  • Broadway - Concurrent and multi-stage data ingestion and data processing with Elixir.
  • Goth - Elixir package for Oauth authentication via Google Cloud APIs.
  • Timber - Great Elixir logging made easy.
  • Parent - Support for custom parenting of processes.
  • Nebulex - In-Process and Distributed Cache Toolkit for Elixir.
  • FunWithFlags - Elixir feature flag library.
  • Scientist - Library for carefully refactoring critical paths in your elixir application.
  • libgraph - Graph data structure library for Elixir projects.
  • GenStage - Producer and consumer actors with back-pressure for Elixir.
  • Elixir RakNet - Elixir implementation of the RakNet/RakLib networking communication protocol.
  • CI - CI/CD toolkit as an Elixir library.
  • Waffle - Flexible file upload and attachment library for Elixir.
  • Oban - Robust job processing in Elixir, backed by modern PostgreSQL. (Web)
  • Nx - Multi-dimensional tensors Elixir lib with multi-staged compilation (CPU/GPU). (Article) (HN) (Lobsters) (Introducing Nx Talk) (HN)
  • Boundary - Manage and restrain cross-module dependencies in Elixir projects.
  • Poison - Incredibly fast, pure Elixir JSON library.
  • Exq - Job processing library for Elixir - compatible with Resque / Sidekiq.
  • Twirp - Elixir implementation of the twirp RPC framework.
  • libcluster - Automatic cluster formation/healing for Elixir applications.
  • Horde - Distributed Supervisor and Registry backed by DeltaCrdt.
  • libring - Fast consistent hash ring for Elixir.
  • Aja - Extension of the Elixir standard library focused on data structures, data manipulation and performance.
  • Schoolbus - Manage one or more PubSub instances using the Elixir registry.
  • Msgpax - Fast and comprehensive library for serializing and deserializing Elixir terms using the MessagePack format.
  • Manifold - Fast batch message passing between nodes for Erlang/Elixir.
  • FastGlobal - Fast no copy globals for Elixir & Erlang.
  • Wasmex - Execute WebAssembly / WASM from Elixir.
  • Recase - Convert strings to any case.
  • Regulator - Adaptive concurrency limits around external resources.
  • Delta - Simple yet expressive format to describe contents and changes.
  • Instruments - Simple and Fast metrics for Elixir.
  • Para - Declarative way to parse and validate parameters.
  • Norm - Data specification and generation.
  • Algae - Bootstrapped algebraic data types for Elixir.
  • VegaLite - Elixir bindings for Vega-Lite.
  • Elixir Thrift
  • Uncharted - Simple Elixir charting library that generates easy to customize charts.
  • Rustic Result - Result monad for Elixir inspired by Rust Result type. (HN)
  • Explorer - Dataframes for Elixir. (Intro)
  • Burrito - Cross-Platform Elixir Deployments.
  • ex_cldr - Elixir implementation of CLDR/ICU.
  • TypedStruct - Library for defining structs with a type without writing boilerplate code.
  • CSV - CSV Decoding and Encoding for Elixir.
  • Daat - Parameterized modules for Elixir.
  • Expat - Reusable, composable patterns across Elixir libraries.
  • Vex - Data Validation for Elixir.
  • NimbleParsec - Simple and fast library for text-based parser combinators.
  • Elasticlunr - Full-text search library for Elixir. (HN)
  • Witchcraft - Monads and other dark magic for Elixir. (Article) (HN) (Lobsters)
  • Domo - Library to validate values of nested structs with their type spec t() and associated precondition functions.
  • Ink - Logger backend that logs JSON.
  • MuonTrap - Keep programs, deamons, and applications launched from Erlang and Elixir contained and well-behaved.
  • StreamSplit - Split a stream into a head and tail, without iterating the tail.
  • Unicode Set - Unicode set parsing, expansion, macros and guards for Elixir.
  • CAStore - Up-to-date certificate store for Elixir.
  • NimblePool - Tiny resource-pool implementation for Elixir.
  • SSHKit - Elixir toolkit for performing tasks on one or more servers, built on top of Erlang’s SSH application.
  • Quark - Common combinators for Elixir.
  • Protox - Fast, easy to use and 100% conformant Elixir library for Google Protocol Buffers.
  • Flow - Computational parallel flows on top of GenStage. (Intro to Elixir Flow)
  • Jsonrs - Rust powered JSON library for Elixir.
  • Semaphore - Fast semaphore using ETS.
  • MJML - Elixir NIF bindings for the MJML Rust implementation.
  • gRPC Elixir - Elixir implementation of gRPC.
  • Focus - Lightweight, pure Elixir functional optics.
  • Envy - Elixir library to load environment variables from .env and environment specific env files.
  • ExWaiter - Helper for waiting on asynchronous conditions to be met.
  • Rollbax - Exception tracking and logging from Elixir to Rollbar.
  • Xray - Academic exploration of strings and encodings in Elixir.
  • PromEx - Elixir Prometheus metrics collection library built on top of Telemetry with accompanying Grafana dashboards.
  • Grizzly - Elixir library for Z-Wave.
  • Brex.Result - Provides tools to handle three common return values in Elixir.
  • Combination - Simple combinatorics library providing combination and permutation.
  • Mogrify - Image processing in Elixir.
  • Jetstream - Elixir client for NATS Jetstream.
  • ExImageInfo - Elixir library to parse images (binaries) and get the dimensions (size), detected mime-type.
  • NifIo - Rustler example. Implements file IO in a NIF.
  • Hush - Runtime configuration loader for Elixir applications.
  • Stripe for Elixir
  • Solid - Liquid template engine in Elixir.
  • MerkleTree - Merkle Tree implementation in pure Elixir.
  • Entity Component System
  • Blex - Fast Bloom filter with concurrent accessibility, powered by :atomics module.
  • Talos - Elixir parameter validation library. Simple and extensible.
  • Faker - Pure Elixir library for generating fake data.
  • Tarearbol - Lightweight task manager, allowing retries, callbacks, assurance that the task succeeded, and more.
  • Telemetria - Helper application that simplifies and standardizes telemetry usage.
  • Swarm - Easy clustering, registration, and distribution of worker processes for Erlang/Elixir.
  • Decimal - Arbitrary precision decimal arithmetic.
  • Ravenx - Notification dispatch library for Elixir applications.
  • Notifiex - Simple Elixir library for sending notifications to various messaging services.
  • Qrusty - Elixir QR Code library that leverages precompiled Rust.
  • Lens - Utility for working with nested data structures.
  • MixInstallExamples - Collection of simple Elixir scripts that are using Mix.install/2.
  • JsonDiffEx - Diff and patch for JSON in Elixir, works really well and is really fast.
  • Pexelmatch - Pure Elixir port of Pixelmatch.
  • Honey Potion - Writing eBPF with Elixir.
  • Sippet - Elixir library designed to be used as SIP protocol middleware.
  • Vapor - Runtime configuration system for Elixir.
  • NimbleOptions - Tiny library for validating and documenting high-level options.
  • Scribe - Pretty print tables of Elixir structs and maps.
  • Queuetopia - Persistent blocking job queue built with Ecto.
  • GenRegistry - Simple and efficient local Process Registry.
  • Rambo - Run your command. Send input. Get output.
  • Rexbug - Thin Elixir wrapper for the redbug Erlang tracing debugger.
  • Mux Elixir - Official Mux API wrapper for Elixir projects, supporting both Mux Data and Mux Video.
  • StreamGzip - Gzip or gunzip an Elixir stream.