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
libraryNeed a full-featured web framework?
Productive, reliable, and fast web framework with built-in WebSockets, PubSub, and real-time capabilities
Plug
libraryNeed HTTP request/response handling?
Composable HTTP middleware specification and adapter for web servers in Elixir
Bandit
libraryNeed a lightweight HTTP server?
Pure Elixir HTTP server built for speed and correctness, supporting HTTP/1, HTTP/2, and WebSockets
Cowboy
libraryNeed a battle-tested HTTP server?
Small, fast, and modern Erlang HTTP server supporting HTTP/1.1, HTTP/2, and WebSocket
Ash Framework
libraryNeed a full application framework with less boilerplate?
Declarative, resource-oriented application framework with built-in authorization, filtering, and API generation
Phoenix LiveView
libraryNeed interactive UIs without a JS framework?
Rich, real-time user experiences with server-rendered HTML — no JavaScript required
Phoenix Channels
libraryNeed WebSocket support?
Real-time communication layer supporting WebSockets and long-polling with topic-based pub/sub
Phoenix PubSub
libraryNeed real-time event broadcasting?
Distributed pub/sub system for Phoenix with pluggable adapters for clustering
Phoenix Presence
libraryNeed to track online users?
Track which users are online across distributed nodes with automatic conflict resolution via CRDTs
LiveFilter
libraryNeed filterable lists in LiveView?
Composable, URL-driven filtering for LiveView with Linear/Notion-style UI and PostgREST-compatible params
Ecto
libraryNeed a database layer and query builder?
Database toolkit with composable queries, migrations, schema validation, and multi-adapter support
Postgrex
libraryNeed a PostgreSQL driver?
Pure Elixir PostgreSQL driver with support for LISTEN/NOTIFY, streaming, and all Postgres types
Ecto SQLite3
libraryNeed a lightweight embedded database?
SQLite3 adapter for Ecto — perfect for embedded devices and single-node applications
Flop
libraryNeed pagination and filtering for lists?
Filtering, ordering, and pagination for Ecto queries with Phoenix LiveView integration
PaperTrail
libraryNeed an audit trail for data changes?
Track and record all changes to your Ecto models with version history
WalEx
libraryNeed change data capture from Postgres?
Listen to Postgres write-ahead log changes via logical replication for real-time database events
PgEvolver
libraryNeed to distribute database schemas with your library?
Versioned PostgreSQL migrations for Elixir libraries with raw SQL, functions, triggers, and RLS policies
PgFlow
libraryNeed workflow orchestration backed by Postgres?
Postgres-powered workflows, background jobs, and cron with DAG execution, retries, and PGMQ
Oban
libraryNeed reliable background job processing?
Robust, Postgres-backed job processing with scheduling, priorities, unique jobs, rate limiting, and web UI
Quantum
libraryNeed scheduled recurring tasks?
Cron-like job scheduler with runtime configurability and timezone support
GenServer
built-inNeed a stateful background process?
Generic server process for managing state, handling calls, and building concurrent systems
Task
built-inNeed simple async work?
Convenient abstractions for running one-off async operations with supervision
Broadway
libraryNeed concurrent data ingestion pipelines?
Build multi-stage, concurrent data processing pipelines with back-pressure and batch processing
GenStage
libraryNeed back-pressure aware data processing?
Producer-consumer pipeline framework with built-in back-pressure for demand-driven data processing
Flow
libraryNeed to process data in parallel?
Computational parallel flows built on GenStage for bounded and unbounded data processing
Membrane
libraryNeed audio/video processing?
Multimedia processing framework for audio, video, and streaming with pipeline architecture
Req
libraryNeed a modern HTTP client?
Batteries-included HTTP client with retries, compression, caching, and streaming built in
Finch
libraryNeed a high-performance HTTP client?
HTTP client with connection pooling built on Mint and NimblePool for high-performance requests
Tesla
libraryNeed a flexible, middleware-based HTTP client?
Composable HTTP client with middleware architecture and swappable adapters
Mint
libraryNeed fine-grained HTTP connection control?
Low-level, functional HTTP client providing process-less connections for HTTP/1 and HTTP/2
phx.gen.auth
libraryNeed user authentication?
Built-in Phoenix authentication generator with secure defaults, sessions, and confirmation
Guardian
libraryNeed JWT/token authentication?
Token-based authentication with JWT support, pluggable serializers, and refresh tokens
Ueberauth
libraryNeed social login / OAuth?
Composable OAuth authentication with strategies for Google, GitHub, Facebook, and more
Pow
libraryNeed full-featured user management?
Robust, modular user authentication and management with email confirmation and password reset
Bcrypt Elixir
libraryNeed secure password hashing?
Bcrypt password hashing for Elixir with NIF bindings for performance
Bodyguard
libraryNeed role-based authorization?
Simple, policy-based authorization that integrates with Phoenix controllers and LiveView
Tango
libraryNeed OAuth integrations with third-party services?
Drop-in OAuth integration for Phoenix with encrypted tokens, PKCE, and 500+ pre-configured providers
ExUnit
built-inNeed a test framework?
Built-in test framework with async test support, doctests, setup callbacks, and rich assertions
ExMachina
libraryNeed test data factories?
Test factory library for creating Ecto structs and maps with associations
Mox
libraryNeed mocking for tests?
Library for defining concurrent, explicit mocks based on behaviours
Mimic
libraryNeed mocking without behaviours?
Flexible mocking library combining the best of Mox and Meck with stubs, expectations, and call tracking
Bypass
libraryNeed to mock external API calls?
Stub external HTTP requests by creating a custom plug server on a local port
Wallaby
libraryNeed end-to-end browser testing?
Browser-based integration testing with concurrent sessions and automatic screenshots
StreamData
libraryNeed to test with random inputs?
Property-based testing and data generation for finding edge cases automatically
Nx
libraryNeed numerical computing and tensors?
Multi-dimensional tensors and numerical computing with GPU/TPU acceleration via backends
Bumblebee
libraryNeed to run ML models?
Run pre-trained HuggingFace models natively in Elixir — text generation, image classification, embeddings, and more
Scholar
libraryNeed classical ML algorithms?
Traditional machine learning algorithms — clustering, regression, classification, dimensionality reduction
Axon
libraryNeed to build neural networks?
Neural network library with model building, training, and optimization on top of Nx
Explorer
libraryNeed data manipulation and analysis?
DataFrames and series for Elixir with lazy and eager evaluation, powered by Polars
Livebook
libraryNeed interactive data exploration?
Interactive notebook for Elixir with real-time collaboration, smart cells, and visualization
Telemetry
libraryNeed application metrics?
Dynamic event dispatching library for metrics and instrumentation across the ecosystem
Logger
built-inNeed application logging?
Built-in structured logging with configurable backends, levels, and metadata
Phoenix LiveDashboard
libraryNeed application monitoring?
Real-time web dashboard for Phoenix apps — metrics, request logging, OS monitoring, and ETS inspection
OpenTelemetry
libraryNeed distributed tracing?
Distributed tracing and metrics collection compatible with the OpenTelemetry standard
Recon
libraryNeed to debug production issues?
Erlang diagnostic tools for production — process info, memory analysis, and tracing
Observer
built-inNeed to inspect running processes?
Built-in GUI tool for inspecting running BEAM processes, memory, and system information
Cachex
libraryNeed an in-memory cache?
Feature-rich in-memory cache with TTL, size limits, warming, stats, and distributed support
Nebulex
libraryNeed distributed caching across nodes?
Distributed caching framework with pluggable adapters — local, partitioned, replicated, and multilevel
ETS
built-inNeed fast in-process data storage?
Built-in in-memory key-value store with constant-time lookups and concurrent read access
ConCache
libraryNeed ETS caching with TTL?
Simple, concurrent caching on top of ETS with TTL, key isolation, and callback support
Swoosh
libraryNeed to send emails?
Composable email library with adapters for Mailgun, SendGrid, SES, SMTP, and more
Bamboo
libraryNeed email with testability?
Flexible, composable email library with testing support and adapter architecture
Premailex
libraryNeed to inline CSS for email?
Inline CSS styles in HTML emails for maximum email client compatibility
gen_smtp
libraryNeed to run your own SMTP server?
Erlang SMTP client and server library for building email infrastructure
Absinthe
libraryNeed a GraphQL API?
Full-featured GraphQL implementation with subscriptions, batching, and dataloader integration
OpenApiSpex
libraryNeed API documentation and validation?
Generate and validate OpenAPI 3.0 specs from your Phoenix controllers automatically
gRPC Elixir
libraryNeed gRPC services?
Pure Elixir gRPC implementation for high-performance service-to-service communication
JSONAPI
libraryNeed JSON:API compliant endpoints?
JSON:API 1.0 specification compliant serializer and deserializer for Phoenix
PgRest
libraryNeed a PostgREST-compatible API in your app?
PostgREST/Supabase-compatible REST API layer for Elixir built on Plug and Ecto
Jason
libraryNeed JSON encoding/decoding?
Blazing fast JSON parser and generator for Elixir, used as the default across the ecosystem
Mix
built-inNeed a build tool and task runner?
Built-in build tool for creating, compiling, testing, and managing Elixir projects
Hex
built-inNeed package management?
Package manager for the Erlang ecosystem with dependency resolution and publishing
IEx
built-inNeed an interactive REPL?
Built-in interactive shell with code completion, debugging, and remote node connection
ExDoc
libraryNeed project documentation?
Documentation generator that produces beautiful HTML and EPUB from module docs and typespecs
Credo
libraryNeed a linter for Elixir?
Static code analysis with a focus on code consistency and teaching good practices
Dialyxir
libraryNeed type checking?
Mix tasks for Dialyzer — static type analysis to catch bugs before runtime
Html2Markdown
libraryNeed to convert HTML to Markdown?
Convert HTML to clean Markdown with smart content extraction that filters out navigation and ads
Mix Format
built-inNeed code formatting?
Built-in opinionated code formatter that enforces consistent style across your project
Nerves
libraryNeed to build IoT/embedded devices?
Build and deploy bulletproof embedded software in Elixir for Raspberry Pi, BeagleBone, and custom hardware
NervesHub
libraryNeed to manage device firmware updates?
Secure, over-the-air firmware update management for Nerves-powered IoT fleets
Scenic
libraryNeed native UI for devices?
Functional UI framework for embedded devices and desktop applications with OpenGL rendering
VintageNet
libraryNeed network management on embedded devices?
Network configuration and management for Nerves devices — WiFi, Ethernet, LTE, and more