Skip to content
On this page

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.
  • RemoteIp - Plug to rewrite the Plug.Conn's remote_ip based on forwarding headers.

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. (HN)
  • 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.
  • Fly Postgres - Library for working with local read-replica postgres databases and performing writes through RPC calls to other nodes in the primary Fly.io region.
  • MyXQL - MySQL 5.5+ driver for Elixir.
  • Apq - Support for Automatic Persisted Queries in Absinthe.
  • Timescale - TimescaleDB made easy with Ecto.
  • AshPostgres - PostgreSQL data layer for the Ash Framework.
  • DataLoader - Easy way efficiently load data in batches.
  • Ecto.DevLogger - Alternative logger for Ecto queries.
  • Ecto.ERD - Mix task for generating Entity Relationship Diagram from Ecto schemas available in your project.
  • Flop - Filtering, ordering and pagination for Ecto.
  • EctoDbg - Utility to format and output Ecto queries.
  • Clickhousex - ClickHouse database driver to connect with Elixir application by HTTP interface.
  • EctoShorts - Library focused around making Ecto easier to use in an application and helping to write shorter code.
  • Z! - Schema description and data validation library.
  • Cachex - Powerful caching library for Elixir with support for transactions, fallbacks and expirations.
  • TigerBeetlex - Elixir client for TigerBeetle.

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.
  • Mneme - Semi-automated snapshot testing for elixir.
  • Mimic - Mocking library for Elixir.

ML

  • Axon - Nx-powered Neural Networks. (HN)
  • Scholar - Machine learning tools built on top of Nx.
  • Tensor - Adds support for Vectors, Matrixes and higher-dimension Tensors to Elixir.
  • Evision - OpenCV-Erlang/Elixir binding.

CLI

  • Owl - Toolkit for writing command-line user interfaces. (Docs) (HN)
  • 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.
  • Absinthe ErrorPayload - Bridges the gap between Ecto and Absinthe for mutation payload.
  • AbsintheClient - GraphQL client designed for Elixir Absinthe.
  • AshGraphql - Absinthe backed graphql API extension for the Ash Framework.
  • AshThrift - Thrift extension for the Ash framework.

WASM

  • Wasmtube - Bridging library that allows us to communicate between Elixir and WASM using JSON.

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. (Web)
  • 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.
  • Uniform - Write less boilerplate and reuse more code in your portfolio of Elixir apps.
  • Athena - Event Logistics Management.
  • Quantum - Cron-like job scheduler for Elixir.
  • Crontab - Elixir library for parsing, writing, and calculating Cron format strings.
  • ExZstd - Elixir binding of the Zstandard library.
  • Spark - Tooling for building DSLs in Elixir.
  • FunLand - Algebraic Data Types for Elixir: Both functional and fun.
  • TypeCheck - Fast and flexible runtime type-checking for your Elixir projects.
  • MapDiff - Calculates the difference between two (nested) maps.
  • Arrays - Library to work with well-structured Arrays with fast random-element-access for Elixir.
  • CapturePipe - Pipe-macro for Elixir that allows bare function captures.
  • protobuf-elixir - Pure Elixir implementation of Google Protobuf.
  • Goal - Parameter validation library based on Ecto.
  • OpenTelemetry Erlang - OpenTelemetry instrumentation for Erlang & Elixir.
  • Striped - Library to interface with the Stripe API.
  • TelemetryDecorator - Function decorator for telemetry.
  • Image - Image processing for Elixir.
  • Tokenizers - Elixir bindings for Hugging Face Tokenizers.
  • Vix - Elixir extension for libvips image processing library.
  • ExCmd - Elixir library to run external programs and to communicate with back pressure.
  • Exile - Alternative to ports for running external programs. It provides back-pressure, non-blocking io, and tries to fix ports issues.
  • Exq Scheduler - Cron like job scheduler for Exq, it's also compatible with Sidekiq and Resque.
  • Make - Make compiler for Mix.
  • Benchee - Easy and extensible benchmarking in Elixir providing you with lots of statistics.
  • Zigler - Inline NIF support for Zig.
  • KinoEcto - Ecto utilities for Livebook.
  • ContEx - Charting and graphing library for Elixir.
  • Definject - Unobtrusive Dependency Injector for Elixir.
  • Jaxon - Streaming JSON parser for Elixir.
  • Matcha - First-class match specifications for Elixir.
  • mix_deploy - Mix tasks to deploy an Elixir release to servers (cloud instance or bare metal, automated deploy).
  • Wallaby - Concurrent browser tests for your Elixir web apps.
  • Toolshed - Toolshed of IEx helpers.
  • Briefly - Simple, robust temporary file support for Elixir.
  • Tria - Optimizing compiler for Elixir.
  • Pathex - Library for performing fast actions with nested data structures in Elixir.
  • Assent - Multi-provider authentication framework.
  • ErrorMessage - Simplify error systems.
  • Mix Unused - Find unused functions in your project.
  • LoggerBackends - Logger backends functionality for Elixir.
  • Mahaul - Parse and validate your environment variables easily in Elixir.
  • Packmatic - Generates Zip streams by aggregating File or URL Sources.
  • Beaver - LLVM/MLIR Toolkit in Elixir and Zig.
  • LoggerJSON - JSON console backend for Elixir Logger.
  • Recode - Linter with autocorrection and a refactoring tool.
  • Haystack - Simple, extendable full-text search engine written in Elixir.
  • Hammer - Elixir rate-limiter with pluggable backends.
  • Exonerate - JSONSchema -> Elixir compiler.
  • Openai.ex - OpenAI API Wrapper written in Elixir.
  • Membrane Multimedia Framework
  • schematic - Library for data specification, validation, and transformation.
  • Enumancer - Elixir macros to effortlessly define highly optimized Enum pipelines.
  • Iter - Fast compile-time optimized alternative to the Enum and Stream modules.
  • Styler - Elixir code-style enforcer that will just FIFY instead of complaining.
  • Spandex - Platform agnostic tracing library.
  • Cocktail - Elixir date recurrence library based on iCalendar events.
  • Validate - Elixir input and request validation.
  • Durable Named Actors (DNA) - Powerful framework for building stateful distributed applications.
  • NimbleCSV - Simple and fast CSV parsing and dumping library for Elixir.