Elixir Ecosystem Directory

Elixir libraries and tools for web, real-time, background jobs, ML, caching, and more. Find the right package for your use case.

Showing 82 of 82 tools

Phoenix

library

Need a full-featured web framework?

Productive, reliable, and fast web framework with built-in WebSockets, PubSub, and real-time capabilities

Replaces: Rails Django Express Next.js

Plug

library

Need HTTP request/response handling?

Composable HTTP middleware specification and adapter for web servers in Elixir

Replaces: Rack WSGI Connect

Bandit

library

Need a lightweight HTTP server?

Pure Elixir HTTP server built for speed and correctness, supporting HTTP/1, HTTP/2, and WebSockets

Replaces: NGINX Puma Gunicorn

Cowboy

library

Need a battle-tested HTTP server?

Small, fast, and modern Erlang HTTP server supporting HTTP/1.1, HTTP/2, and WebSocket

Replaces: NGINX Apache

Ash Framework

library

Need a full application framework with less boilerplate?

Declarative, resource-oriented application framework with built-in authorization, filtering, and API generation

Replaces: Rails Laravel

Phoenix LiveView

library

Need interactive UIs without a JS framework?

Rich, real-time user experiences with server-rendered HTML — no JavaScript required

Replaces: React Vue Next.js Socket.io

Phoenix Channels

library

Need WebSocket support?

Real-time communication layer supporting WebSockets and long-polling with topic-based pub/sub

Replaces: Socket.io Pusher ActionCable

Phoenix PubSub

library

Need real-time event broadcasting?

Distributed pub/sub system for Phoenix with pluggable adapters for clustering

Replaces: Redis Pub/Sub RabbitMQ

Phoenix Presence

library

Need to track online users?

Track which users are online across distributed nodes with automatic conflict resolution via CRDTs

Replaces: Redis presence custom tracking

LiveFilter

library

Need filterable lists in LiveView?

Composable, URL-driven filtering for LiveView with Linear/Notion-style UI and PostgREST-compatible params

Ecto

library

Need a database layer and query builder?

Database toolkit with composable queries, migrations, schema validation, and multi-adapter support

Replaces: ActiveRecord SQLAlchemy Prisma TypeORM

Postgrex

library

Need a PostgreSQL driver?

Pure Elixir PostgreSQL driver with support for LISTEN/NOTIFY, streaming, and all Postgres types

Replaces: pg psycopg2 node-postgres

Ecto SQLite3

library

Need a lightweight embedded database?

SQLite3 adapter for Ecto — perfect for embedded devices and single-node applications

Flop

library

Need pagination and filtering for lists?

Filtering, ordering, and pagination for Ecto queries with Phoenix LiveView integration

Replaces: Kaminari will_paginate

PaperTrail

library

Need an audit trail for data changes?

Track and record all changes to your Ecto models with version history

WalEx

library

Need change data capture from Postgres?

Listen to Postgres write-ahead log changes via logical replication for real-time database events

Replaces: Debezium custom CDC

PgEvolver

library

Need to distribute database schemas with your library?

Versioned PostgreSQL migrations for Elixir libraries with raw SQL, functions, triggers, and RLS policies

PgFlow

library

Need workflow orchestration backed by Postgres?

Postgres-powered workflows, background jobs, and cron with DAG execution, retries, and PGMQ

Replaces: Temporal Inngest

Oban

library

Need reliable background job processing?

Robust, Postgres-backed job processing with scheduling, priorities, unique jobs, rate limiting, and web UI

Replaces: Sidekiq Celery Bull Hangfire

Quantum

library

Need scheduled recurring tasks?

Cron-like job scheduler with runtime configurability and timezone support

Replaces: Cron Sidekiq Scheduler node-cron

GenServer

built-in

Need a stateful background process?

Generic server process for managing state, handling calls, and building concurrent systems

Replaces: Background threads worker pools

Task

built-in

Need simple async work?

Convenient abstractions for running one-off async operations with supervision

Replaces: Thread pools async/await libraries

Broadway

library

Need concurrent data ingestion pipelines?

Build multi-stage, concurrent data processing pipelines with back-pressure and batch processing

Replaces: Kafka consumers Spark Streaming Flink

GenStage

library

Need back-pressure aware data processing?

Producer-consumer pipeline framework with built-in back-pressure for demand-driven data processing

Replaces: Kafka RabbitMQ consumers

Flow

library

Need to process data in parallel?

Computational parallel flows built on GenStage for bounded and unbounded data processing

Replaces: Apache Spark Hadoop MapReduce

Membrane

library

Need audio/video processing?

Multimedia processing framework for audio, video, and streaming with pipeline architecture

Replaces: FFmpeg wrappers GStreamer Wowza

Req

library

Need a modern HTTP client?

Batteries-included HTTP client with retries, compression, caching, and streaming built in

Replaces: Axios Requests HTTPoison

Finch

library

Need a high-performance HTTP client?

HTTP client with connection pooling built on Mint and NimblePool for high-performance requests

Replaces: HTTPoison connection pool libraries

Tesla

library

Need a flexible, middleware-based HTTP client?

Composable HTTP client with middleware architecture and swappable adapters

Replaces: Faraday Axios interceptors

Mint

library

Need fine-grained HTTP connection control?

Low-level, functional HTTP client providing process-less connections for HTTP/1 and HTTP/2

phx.gen.auth

library

Need user authentication?

Built-in Phoenix authentication generator with secure defaults, sessions, and confirmation

Replaces: Devise Passport.js

Guardian

library

Need JWT/token authentication?

Token-based authentication with JWT support, pluggable serializers, and refresh tokens

Replaces: jsonwebtoken PyJWT

Ueberauth

library

Need social login / OAuth?

Composable OAuth authentication with strategies for Google, GitHub, Facebook, and more

Replaces: OmniAuth Passport.js NextAuth

Pow

library

Need full-featured user management?

Robust, modular user authentication and management with email confirmation and password reset

Replaces: Devise Auth0

Bcrypt Elixir

library

Need secure password hashing?

Bcrypt password hashing for Elixir with NIF bindings for performance

Bodyguard

library

Need role-based authorization?

Simple, policy-based authorization that integrates with Phoenix controllers and LiveView

Replaces: Pundit CanCanCan

Tango

library

Need OAuth integrations with third-party services?

Drop-in OAuth integration for Phoenix with encrypted tokens, PKCE, and 500+ pre-configured providers

Replaces: Nango Pizzly

ExUnit

built-in

Need a test framework?

Built-in test framework with async test support, doctests, setup callbacks, and rich assertions

Replaces: RSpec pytest Jest Mocha

ExMachina

library

Need test data factories?

Test factory library for creating Ecto structs and maps with associations

Replaces: FactoryBot Faker factory_boy

Mox

library

Need mocking for tests?

Library for defining concurrent, explicit mocks based on behaviours

Replaces: Mockery unittest.mock Jest mocks

Mimic

library

Need mocking without behaviours?

Flexible mocking library combining the best of Mox and Meck with stubs, expectations, and call tracking

Replaces: Meck

Bypass

library

Need to mock external API calls?

Stub external HTTP requests by creating a custom plug server on a local port

Replaces: VCR WebMock nock

Wallaby

library

Need end-to-end browser testing?

Browser-based integration testing with concurrent sessions and automatic screenshots

Replaces: Capybara Cypress Playwright

StreamData

library

Need to test with random inputs?

Property-based testing and data generation for finding edge cases automatically

Replaces: QuickCheck Hypothesis fast-check

Nx

library

Need numerical computing and tensors?

Multi-dimensional tensors and numerical computing with GPU/TPU acceleration via backends

Replaces: NumPy PyTorch tensors

Bumblebee

library

Need to run ML models?

Run pre-trained HuggingFace models natively in Elixir — text generation, image classification, embeddings, and more

Replaces: HuggingFace Transformers Python ML microservice

Scholar

library

Need classical ML algorithms?

Traditional machine learning algorithms — clustering, regression, classification, dimensionality reduction

Replaces: scikit-learn

Axon

library

Need to build neural networks?

Neural network library with model building, training, and optimization on top of Nx

Replaces: Keras PyTorch nn

Explorer

library

Need data manipulation and analysis?

DataFrames and series for Elixir with lazy and eager evaluation, powered by Polars

Replaces: Pandas Polars

Livebook

library

Need interactive data exploration?

Interactive notebook for Elixir with real-time collaboration, smart cells, and visualization

Replaces: Jupyter Notebook Google Colab

Telemetry

library

Need application metrics?

Dynamic event dispatching library for metrics and instrumentation across the ecosystem

Replaces: StatsD custom instrumentation

Logger

built-in

Need application logging?

Built-in structured logging with configurable backends, levels, and metadata

Replaces: Winston Log4j Python logging

Phoenix LiveDashboard

library

Need application monitoring?

Real-time web dashboard for Phoenix apps — metrics, request logging, OS monitoring, and ETS inspection

Replaces: New Relic Datadog Grafana

OpenTelemetry

library

Need distributed tracing?

Distributed tracing and metrics collection compatible with the OpenTelemetry standard

Replaces: Jaeger Zipkin Datadog APM

Recon

library

Need to debug production issues?

Erlang diagnostic tools for production — process info, memory analysis, and tracing

Replaces: pprof strace custom debugging

Observer

built-in

Need to inspect running processes?

Built-in GUI tool for inspecting running BEAM processes, memory, and system information

Replaces: Process managers htop

Cachex

library

Need an in-memory cache?

Feature-rich in-memory cache with TTL, size limits, warming, stats, and distributed support

Replaces: Redis Memcached

Nebulex

library

Need distributed caching across nodes?

Distributed caching framework with pluggable adapters — local, partitioned, replicated, and multilevel

Replaces: Redis Cluster Hazelcast

ETS

built-in

Need fast in-process data storage?

Built-in in-memory key-value store with constant-time lookups and concurrent read access

Replaces: Redis Memcached in-memory hashmaps

ConCache

library

Need ETS caching with TTL?

Simple, concurrent caching on top of ETS with TTL, key isolation, and callback support

Replaces: Redis with TTL

Swoosh

library

Need to send emails?

Composable email library with adapters for Mailgun, SendGrid, SES, SMTP, and more

Replaces: Nodemailer Action Mailer SendGrid SDK

Bamboo

library

Need email with testability?

Flexible, composable email library with testing support and adapter architecture

Replaces: Nodemailer Action Mailer

Premailex

library

Need to inline CSS for email?

Inline CSS styles in HTML emails for maximum email client compatibility

Replaces: Premailer juice

gen_smtp

library

Need to run your own SMTP server?

Erlang SMTP client and server library for building email infrastructure

Replaces: Postfix custom SMTP

Absinthe

library

Need a GraphQL API?

Full-featured GraphQL implementation with subscriptions, batching, and dataloader integration

Replaces: Apollo Server graphql-ruby Strawberry

OpenApiSpex

library

Need API documentation and validation?

Generate and validate OpenAPI 3.0 specs from your Phoenix controllers automatically

Replaces: Swagger FastAPI auto-docs

gRPC Elixir

library

Need gRPC services?

Pure Elixir gRPC implementation for high-performance service-to-service communication

Replaces: gRPC Go gRPC Python

JSONAPI

library

Need JSON:API compliant endpoints?

JSON:API 1.0 specification compliant serializer and deserializer for Phoenix

Replaces: jsonapi-serializer Django REST

PgRest

library

Need a PostgREST-compatible API in your app?

PostgREST/Supabase-compatible REST API layer for Elixir built on Plug and Ecto

Replaces: PostgREST Supabase

Jason

library

Need JSON encoding/decoding?

Blazing fast JSON parser and generator for Elixir, used as the default across the ecosystem

Replaces: Poison json gems/packages

Mix

built-in

Need a build tool and task runner?

Built-in build tool for creating, compiling, testing, and managing Elixir projects

Replaces: Make Rake npm scripts Cargo

Hex

built-in

Need package management?

Package manager for the Erlang ecosystem with dependency resolution and publishing

Replaces: npm pip RubyGems Cargo

IEx

built-in

Need an interactive REPL?

Built-in interactive shell with code completion, debugging, and remote node connection

Replaces: IRB Python REPL Node REPL

ExDoc

library

Need project documentation?

Documentation generator that produces beautiful HTML and EPUB from module docs and typespecs

Replaces: Javadoc Sphinx JSDoc TypeDoc

Credo

library

Need a linter for Elixir?

Static code analysis with a focus on code consistency and teaching good practices

Replaces: ESLint Rubocop Pylint

Dialyxir

library

Need type checking?

Mix tasks for Dialyzer — static type analysis to catch bugs before runtime

Replaces: TypeScript mypy Sorbet

Html2Markdown

library

Need to convert HTML to Markdown?

Convert HTML to clean Markdown with smart content extraction that filters out navigation and ads

Mix Format

built-in

Need code formatting?

Built-in opinionated code formatter that enforces consistent style across your project

Replaces: Prettier Black gofmt

Nerves

library

Need to build IoT/embedded devices?

Build and deploy bulletproof embedded software in Elixir for Raspberry Pi, BeagleBone, and custom hardware

Replaces: C/C++ embedded MicroPython Yocto

NervesHub

library

Need to manage device firmware updates?

Secure, over-the-air firmware update management for Nerves-powered IoT fleets

Replaces: AWS IoT custom OTA systems

Scenic

library

Need native UI for devices?

Functional UI framework for embedded devices and desktop applications with OpenGL rendering

Replaces: Qt GTK Electron

VintageNet

library

Need network management on embedded devices?

Network configuration and management for Nerves devices — WiFi, Ethernet, LTE, and more

Missing something?

Add a tool by opening a pull request.

Contribute via PR