# Elixir Toolbox > Find and compare Elixir packages by category. Browse packages ranked by downloads, GitHub stars, and activity metrics. Elixir Toolbox curates Elixir packages from Hex.pm organized into categories. Each category page compares packages side-by-side with download counts, GitHub/GitLab stars, open issues, and last commit dates. Data refreshes every 6 hours from Hex.pm and GitHub/GitLab APIs. ## AI, LLM & Machine Learning ### Deep Learning & Model Inference Train neural networks or run pre-trained models locally - **axon** (v0.8.0, 431.8K downloads, 1.7K stars) — Create and train neural networks in Elixir - **bumblebee** (v0.6.3, 373.9K downloads, 1.6K stars) — Pre-trained and transformer Neural Network models in Axon - **scholar** (v0.4.1, 212.1K downloads, 488 stars) — Traditional machine learning on top of Nx - **ortex** (v0.1.10, 79.1K downloads, 197 stars) — ONNX Runtime bindings for Elixir - **stb_image** (v0.6.10, 88.2K downloads, 51 stars) — A tiny image reader/writer library using stb_image as the backend - **polaris** (v0.1.0, 450.3K downloads, 32 stars) — Optimizers for the Nx ecosystem ### LLM Clients Call LLM provider APIs — OpenAI, Anthropic, Ollama, Gemini, and more - **req_llm** (v1.6.0, 39.4K downloads, 419 stars) — Composable Elixir library for LLM interactions built on Req & Finch - **openai_ex** (v0.9.19, 289.6K downloads, 208 stars) — Community maintained Elixir library for OpenAI API - **ollama** (v0.9.0, 29.6K downloads, 138 stars) — A nifty little library for working with Ollama in Elixir. - **anthropix** (v0.6.2, 117.1K downloads, 54 stars) — Unofficial Anthropic API client for Elixir. Integrate Claude, Anthropic's powerful language model, into your applications. - **ex_llm** (v0.8.1, 797 downloads, 50 stars) — Unified Elixir client library for Large Language Models (LLMs) - **gemini_ex** (v0.10.0, 4.5K downloads, 26 stars) — Comprehensive Elixir client for Google's Gemini AI API with dual authentication, embeddings with MRL, streaming, type safety, and built-in telemetry for production applications. - **mistral** (v0.5.0, 1.5K downloads, 9 stars) — A nifty little library for working with Mistral in Elixir. - **hyper_llm** (v0.6.0, 500 downloads, 1 stars) — Call all LLM APIs using the OpenAI format. ### LLM Orchestration & Structured Output Build LLM-powered apps with chains, agents, RAG, or structured output - **langchain** (v0.6.0, 497.3K downloads, 1.1K stars) — Elixir implementation of a LangChain style framework that lets Elixir projects integrate with and leverage LLMs. - **instructor** (v0.1.0, 142.2K downloads, 766 stars) — Structured prompting for OpenAI and OSS LLMs - **ash_ai** (v0.5.0, 85.9K downloads, 158 stars) — Integrated LLM features for your Ash application. - **instructor_lite** (v1.2.0, 37.4K downloads, 133 stars) — Structured prompting for LLMs - **nous** (v0.11.0, 357 downloads, 5 stars) — AI agent framework for Elixir with multi-provider LLM support - **synaptic** (v0.2.7, 1.6K downloads, 3 stars) — Workflow engine for orchestrating LLM-backed + human-in-the-loop automations - **langchain_mcp** (v0.2.0, 394 downloads, 3 stars) — Model Context Protocol (MCP) integration for LangChain Elixir. Enables LangChain to use MCP servers as tool providers. ### Numerical Computing Tensor operations, data frames, and GPU-accelerated computing with the Nx ecosystem - **exla** (v0.11.0, 649.1K downloads, 2.9K stars) — Google's XLA (Accelerated Linear Algebra) compiler/backend for Nx - **nx** (v0.11.0, 1.2M downloads, 2.9K stars) — Multi-dimensional arrays (tensors) and numerical definitions for Elixir - **explorer** (v0.11.1, 777.8K downloads, 1.3K stars) — Series (one-dimensional) and dataframes (two-dimensional) for fast data exploration in Elixir - **nx_signal** (v0.2.0, 364.6K downloads, 128 stars) — Digital Signal Processing extension for Nx - **tokenizers** (v0.5.1, 562.0K downloads, 100 stars) — Bindings to Hugging Face Tokenizers for Elixir - **nx_image** (v0.1.2, 378.7K downloads, 21 stars) — Image processing in Nx ## APIs and Integrations ### Geolocation Geographic calculations, geocoding, and spatial data libraries - **geo** (v4.1.0, 5.5M downloads, 674 stars) — Encodes and decodes WKB, WKT, and GeoJSON formats. - **topo** (v1.0.3, 480.8K downloads, 170 stars) — Geometry library for determining spatial relationships between geometries - **geocoder** (v2.2.2, 747.2K downloads, 129 stars) — A simple, efficient geocoder/reverse geocoder with a built-in cache. - **geocalc** (v0.8.5, 1.2M downloads, 155 stars) — Calculate distance, bearing and more between latitude/longitude points. ### GraphQL GraphQL implementations - **absinthe** (v1.9.0, 42.4M downloads, 4.4K stars) — GraphQL for Elixir ### Payments Client libraries for payment processors like Stripe and Braintree - **stripity_stripe** (v3.2.0, 5.5M downloads, 1.1K stars) — A Stripe client for Elixir. - **braintree** (v0.16.0, 1.2M downloads, 103 stars) — Native Braintree client library for Elixir ### Search Engines Client libraries for search engines like Elasticsearch, OpenSearch, and Typesense - **elasticsearch** (v1.1.0, 1.2M downloads, 422 stars) — Elasticsearch without DSLs - **elastix** (v0.10.0, 2.0M downloads, 254 stars) — A DSL-free Elastic / Elasticsearch client for Elixir. - **snap** (v0.14.0, 469.5K downloads, 85 stars) — A modern Elasticsearch/OpenSearch client - **ex_typesense** (v2.0.1, 54.0K downloads, 45 stars) — Typesense client for Elixir with support for importing your Ecto schemas. ### Static Site Generation Frameworks for generating static websites and blogs - **tableau** (v0.30.0, 7.2K downloads, 290 stars) — Static site generator for elixir - **still** (v0.8.0, 3.2K downloads, 257 stars) — A modern static site generator for the Elixir community - **phoenix_pages** (v0.1.2, 2.3K downloads, 84 stars) — Blogs, docs, and static pages in Phoenix ### gRPC gRPC client and server implementations for Elixir - **grpc** (v0.11.5, 5.4M downloads, 1.5K stars) — The Elixir implementation of gRPC Protocol ## Absinthe ### Absinthe Authorization Authorization implementations for Absinthe GraphQL - **speakeasy** (v0.3.2, 131.7K downloads, 84 stars) — Middleware based authentication and authorization for Absinthe GraphQL powered by Bodyguard - **rajska** (v1.3.2, 62.4K downloads, 46 stars) — Rajska is an authorization library for Absinthe. - **bastion** (v0.1.1, 3.1K downloads, 12 stars) — Bastion provides scope authorization for Absinthe GraphQL Schemas on a per-field basis. - **datacop** (v0.1.4, 6.0K downloads, 5 stars) — An authorization library with dataloader and absinthe support. - **blanka** (v0.1.0, 1.6K downloads, 0 stars) — Blanka - Abinsthe Authorization ## Algorithms ### Checksum Checksum calculation - **crc** (v0.10.6, 1.3M downloads, 28 stars) — A library used to calculate CRC checksums for binary data. - **luhn** (v0.3.3, 808.7K downloads, 17 stars) — Luhn algorithm in Elixir - **checksum** (v0.1.0, 2.3K downloads, 0 stars) — Checksum library allows checksum calculations, like CRC.... ### Clustering Data clustering and partitioning algorithms - **clope** (v0.1.4, 1.9K downloads, 22 stars) — CLOPE: A Fast and Effective Clustering Algorithm for Transactional Data - **rock** (v0.1.2, 878 downloads, 12 stars) — ROCK: A Robust Clustering Algorithm for Categorical Attributes - **bucket_hydra** (v0.1.1, 9.6K downloads, 2 stars) — A bucket-based rate limit algorithm with support for clusters - **partitioned_cluster_layout** (v0.1.0, 152 downloads, 2 stars) — Abstract partitioned cluster layout with routing, optimized primary/replica placement, cluster diffs and range transition plans. ### Constraint Solvers Constraint satisfaction problem solvers - **aruspex** (v0.1.0, 6.2K downloads, 41 stars) — A configurable constraint solver with an API based on JSR 331. ### Hashing Hashing algorithms - **hash_ring_ex** (v1.1.2, 8.6K downloads, 24 stars) — A consistent hash-ring implemention for Elixir. - **jumper** (v1.0.2, 16.2M downloads, 12 stars) — Jump consistent hash implementation in Elixir - **rendezvous** (v0.0.1, 509 downloads, 9 stars) — Implementation of the Rendezvous or Highest Random Weight (HRW) hashing algorithm ### Pathfinding Pathfinding algorithms - **conrex** (v1.0.0, 231 downloads, 55 stars) — An implementation of the CONREC contouring algorithm, described at . - **eastar** (v0.5.1, 8.2K downloads, 34 stars) — Eastar is a pure-Elixir implementation of A* graph pathfinding algorithm. All graph environment, like nodes connectivity, distance & H-metric are abstracted away - you provide them as functions. ### Phonetic Algorithms Phonetic Algorithms (fuzzy string matching) - **the_fuzz** (v0.6.0, 413.5K downloads, 81 stars) — String metrics and phonetic algorithms for Elixir. Based Heavily on StringMetrics for Scala written by Rocky Madden. ### Randomization Random number generators - **quickrand** (v2.0.7, 36.1M downloads, 42 stars) — Quick Random Number Generation: Provides a simple interface to call efficient random number generation functions based on the context. Proper random number seeding is enforced. - **misc_random** (v0.2.9, 366.8K downloads, 10 stars) — Creates random numbers and strings of arbitrary lengths. Uses preferred Erlang random module based on used OTP version. - **isaac** (v0.0.1, 567 downloads, 4 stars) — Isaac is an elixir module for the [ISAAC Stream Cipher](http://burtleburtle.net/bob/rand/isaacafa.html) It wraps around https://github.com/arianvp/ISAAC which is a port of the ISAAC stream cipher to platforms which have words bigger than 32 bits. ### Sets Set algorithms - **simhash** (v0.1.2, 1.1K downloads, 23 stars) — Simhash implementation using Siphash and N-grams. ### State Machines Finite state machine libraries and DSLs - **machinery** (v1.1.0, 720.6K downloads, 564 stars) — Machinery is a State Machine library for structs in general. It supports guard clauses, callbacks and integrate out of the box with Phoenix apps. - **fsm** (v0.3.1, 2.3M downloads, 361 stars) — Finite state machine as a functional data structure. - **gearbox** (v0.3.5, 219.5K downloads, 193 stars) — Gearbox is a functional state machine with an easy-to-use API, inspired by both Fsm and Machinery - **states_language** (v0.4.0, 9.6K downloads, 127 stars) — Declaratively design state machines that compile to Elixir based :gen_statem processes with the StatesLanguage JSON specification - **finitomata** (v0.34.0, 71.3K downloads, 119 stars) — The FSM implementation generated from PlantUML textual representation. - **machinist** (v2.1.2, 28.6K downloads, 105 stars) — A small Elixir lib to write state machines - **gen_fsm** (v0.1.0, 19.2K downloads, 40 stars) — Elixir wrapper around Erlang's OTP gen_fsm. - **state_machine** (v0.1.9, 16.4K downloads, 23 stars) — State Machine implementation in Elixir. It's a structure and optionally a gen_statem powered process. It validates states and transitions for integrity and features seamless Ecto-integration. - **state_server** (v0.4.10, 4.0K downloads, 22 stars) — half gen_server, half gen_statem, all state machine - **exfsm** (v0.1.6, 5.2K downloads, 12 stars) — Simple elixir library to define composable FSM as function (not related at all with `:gen_fsm`, no state/process management) - **as_fsm** (v2.0.1, 18.9K downloads, 15 stars) — An Finite state machine implementation for elixir - **maxine** (v1.1.1, 8.2K downloads, 10 stars) — State machines as data for Elixir - **exsm** (v0.3.2, 65.3K downloads, 5 stars) — Exsm is a State Machine library for structs. - **aasm** (v0.2.0, 16.3K downloads, 4 stars) — The finite state machine implementations for Elixir. ### Stream Ciphers Stream cipher implementations - **lfsr** (v0.0.2, 2.0K downloads, 8 stars) — Elixir implementation of a binary Galois Linear Feedback Shift Register. ### Unique IDs Unique ID generation - **elixir_uuid** (v1.2.1, 16.6M downloads, 367 stars) — UUID generator and utilities for Elixir. - **uuid** (v1.1.8, 57.6M downloads, 367 stars) — UUID generator and utilities for Elixir. - **uuid_erl** (v2.0.7, 5.9M downloads, 221 stars) — Erlang UUID Implementation - **uniq** (v0.6.2, 3.5M downloads, 119 stars) — Provides UUID generation, parsing, and formatting. Supports RFC 4122, and the v6 draft extension - **cuid** (v0.1.0, 22.4M downloads, 55 stars) — Generate collision-resistant ids, in Elixir - **shortuuid** (v4.1.0, 1.0M downloads, 51 stars) — ShortUUID - generate concise, unambiguous, URL-safe UUIDs - **base62_uuid** (v3.0.0, 57.2K downloads, 15 stars) — A library for creating Base62-encoded UUIDs ## Ash ### Ash Framework API Extensions Packages that add or generate APIs for Ash Framework applications - **ash_graphql** (v1.8.5, 340.7K downloads, 93 stars) — The extension for building GraphQL APIs with Ash - **ash_json_api** (v1.5.1, 377.8K downloads, 89 stars) — The JSON:API extension for the Ash Framework. ### Ash Framework Admin Interfaces Packages that add or generate Administration pages for Ash Apps - **ash_admin** (v0.14.0, 277.4K downloads, 169 stars) — A super-admin UI for Ash Framework, built with Phoenix LiveView. ### Ash Framework Data Layers Packages that provide Ash Framework data layers - **ash_postgres** (v2.6.32, 943.9K downloads, 177 stars) — The PostgreSQL data layer for Ash Framework - **ash_sqlite** (v0.2.15, 21.8K downloads, 26 stars) — The SQLite data layer for Ash Framework. - **ash_csv** (v0.9.7, 23.1K downloads, 15 stars) — The CSV data layer for Ash Framework - **ash_cubdb** (v0.6.2, 3.4K downloads, 10 stars) — A CubDB data layer for `Ash` resources. ### Ash Framework Resource Extensions Packages that add capabilities to or modify Ash Framework Resources - **ash_authentication** (v4.13.7, 532.3K downloads, 151 stars) — Authentication extension for the Ash Framework. - **ash_phoenix** (v2.3.19, 752.3K downloads, 153 stars) — Utilities for integrating Ash and Phoenix - **ash_authentication_phoenix** (v2.15.0, 458.6K downloads, 79 stars) — Phoenix integration for Ash Authentication - **ash_state_machine** (v0.2.12, 149.4K downloads, 35 stars) — The extension for building state machines with Ash resources. - **ash_geo** (v0.3.0, 50.2K downloads, 30 stars) — Tools for using Geo, Topo and PostGIS with Ash - **ash_archival** (v2.0.3, 228.0K downloads, 26 stars) — An Ash extension to implement archival (soft deletion) for resources. - **ash_double_entry** (v1.0.16, 30.2K downloads, 25 stars) — A customizable double entry bookkeeping system backed by Ash resources. - **ash_rbac** (v0.6.1, 9.0K downloads, 21 stars) — A small extension for easier application of policies - **ash_ulid** (v1.0.1, 967 downloads, 6 stars) — ULID type for Ash framework ## Cloud Services ### AWS AWS SDK client libraries for S3, SQS, SNS, DynamoDB, and other services - **ex_aws** (v2.6.1, 67.7M downloads, 1.3K stars) — AWS client for Elixir. Currently supports Dynamo, DynamoStreams, EC2, Firehose, Kinesis, KMS, Lambda, RRDS, Route53, S3, SES, SNS, SQS, STS and others. - **aws** (v1.0.10, 1.8M downloads, 592 stars) — AWS clients for Elixir - **ex_aws_s3** (v2.5.9, 56.3M downloads, 191 stars) — ExAws.S3 service package - **ex_aws_dynamo** (v4.2.2, 5.8M downloads, 40 stars) — ExAws.Dynamo service package - **ex_aws_sqs** (v3.4.0, 7.2M downloads, 41 stars) — ExAws.SQS service package - **ex_aws_sts** (v2.3.0, 6.7M downloads, 15 stars) — ExAws.STS service package - **ex_aws_ses** (v2.4.1, 2.1M downloads, 22 stars) — ExAws.SES service package - **ex_aws_sns** (v2.3.4, 4.2M downloads, 22 stars) — ExAws.SNS service package - **ex_aws_ec2** (v2.0.1, 2.2M downloads, 6 stars) — ExAws.EC2 service package - **ex_aws_kms** (v2.5.0, 1.2M downloads, 3 stars) — ExAws.KMS service package - **ex_aws_lambda** (v2.1.0, 1.7M downloads, 7 stars) — ExAws.Lambda service package - **ex_aws_secretsmanager** (v2.0.0, 1.6M downloads, 8 stars) — ExAws.SecretsManager service package ### GCP Google Cloud Platform client libraries for Storage, Pub/Sub, BigQuery, and more - **google_api_big_query** (v0.88.0, 1.1M downloads, 1.1K stars) — BigQuery API client library. A data platform for customers to create, manage, share and query data. - **google_api_pub_sub** (v0.42.0, 1.3M downloads, 1.1K stars) — Cloud Pub/Sub API client library. Provides reliable, many-to-many, asynchronous messaging between applications. - **google_api_secret_manager** (v0.23.0, 1.7M downloads, 1.1K stars) — Secret Manager API client library. Stores sensitive data such as API keys, passwords, and certificates. Provides convenience while improving security. - **google_api_storage** (v0.46.1, 3.8M downloads, 1.1K stars) — Cloud Storage JSON API client library. Stores and retrieves potentially large, immutable data objects. - **google_gax** (v0.4.1, 29.6M downloads, 1.1K stars) — Google API Extensions - **goth** (v1.4.5, 12.3M downloads, 319 stars) — A simple library to generate and retrieve Oauth2 tokens for use with Google Cloud Service accounts. ## Code Quality ### Code Coverage Test coverage reporting and dead code detection - **excoveralls** (v0.18.5, 94.4M downloads, 862 stars) — Coverage report tool for Elixir with coveralls.io integration. - **coverex** (v1.5.0, 633.4K downloads, 102 stars) — Coverex is an Elixir Coverage tool used by mix. It provides tables with overviews of module and function coverage data, includings links to annotated source code files and supports coveralls.io. - **excoveralls_linter** (v0.2.1, 49.1K downloads, 5 stars) — Simple mix task to run excoveralls for coverage linting - **excov** (v0.1.7, 1.8K downloads, 3 stars) — Code Coverage Reports for Elixir code. ### Debugging and Profiling Production-safe diagnostic, tracing, and profiling tools - **recon** (v2.5.6, 97.2M downloads, 1.4K stars) — Diagnostic tools for production use - **observer_cli** (v1.8.6, 24.1M downloads, 1.5K stars) — Visualize Erlang Nodes On The Command Line - **rexbug** (v1.0.6, 2.1M downloads, 260 stars) — Rexbug is a thin Elixir wrapper for :redbug production-friendly Erlang tracing debugger. It tries to preserve :redbug's simple and intuitive interface while making it more convenient to use by Elixir developers. - **eflambe** (v0.3.2, 443.8K downloads, 151 stars) — A tool for rapid profiling of Erlang and Elixir applications. - **extrace** (v0.6.0, 964.0K downloads, 63 stars) — Elixir wrapper for Recon Trace. ### Documentation Documentation generation and quality tools - **ex_doc** (v0.40.1, 95.4M downloads, 1.6K stars) — ExDoc is a documentation generation tool for Elixir - **doctor** (v0.22.0, 1.5M downloads, 186 stars) — Simple utility to create documentation coverage reports ### Metrics and Standards Packages that help improve code quality by suggesting standards, formatting code and complexity metrics - **credo** (v1.7.16, 84.1M downloads, 5.1K stars) — A static code analysis tool with a focus on code consistency and teaching. ## Communication ### Email Email composition, delivery, and templating - **bamboo** (v2.5.0, 38.2M downloads, 2.0K stars) — Straightforward, powerful, and adapter based Elixir email library. Works with Mandrill, Mailgun, SendGrid, SparkPost, Postmark, in-memory, and test. - **swoosh** (v1.22.1, 18.6M downloads, 1.5K stars) — Compose, deliver and test your emails easily in Elixir. Supports SMTP, Sendgrid, Mandrill, Postmark, Mailgun and many more out of the box. Preview your emails in the browser. Test your email sending code. - **gen_smtp** (v1.3.0, 34.3M downloads, 706 stars) — The extensible Erlang SMTP client and server library. - **mail** (v0.5.2, 24.4M downloads, 484 stars) — Easily build a composable mail message - **premailex** (v0.3.20, 25.7M downloads, 182 stars) — Add inline styling to your HTML emails, and transform them to text - **sendgrid** (v2.0.0, 24.1M downloads) — A wrapper for SendGrid's API to create composable emails. ### Messaging Protocols Client libraries for AMQP, MQTT, and other messaging protocols - **amqp** (v4.1.0, 15.2M downloads, 691 stars) — Idiomatic Elixir client for RabbitMQ. - **emqtt** (v1.14.7, 629.3K downloads, 432 stars) — Erlang MQTT v5.0 Client - **tortoise311** (v0.12.2, 170.9K downloads, 18 stars) — An MQTT 3.1.1 client for Elixir ### SMS and Push Notifications Libraries for sending SMS messages and mobile push notifications - **pigeon** (v2.0.1, 26.9M downloads, 671 stars) — iOS (APNS), Android (FCM), and Amazon Android (ADM) push notifications for Elixir. - **ex_twilio** (v0.10.0, 27.5M downloads, 346 stars) — Twilio API library for Elixir - **web_push_elixir** (v0.5.0, 32.6K downloads, 31 stars) — Simple web push for Elixir ## Concurrency ### Background Jobs Persistent background job processing - **oban** (v2.20.3, 22.5M downloads, 3.8K stars) — Robust job processing, backed by modern PostgreSQL, SQLite3, and MySQL. - **exq** (v0.23.0, 3.6M downloads, 1.5K stars) — Exq is a job processing library compatible with Resque / Sidekiq for the Elixir language. - **que** (v0.10.1, 444.5K downloads, 682 stars) — Simple Background Job Processing with Mnesia - **rihanna** (v2.3.1, 293.3K downloads, 452 stars) — Rihanna is a database-backed job queue. ### Concurrent Processing Concurrent computation - **flow** (v1.2.4, 8.7M downloads, 1.6K stars) — Computational parallel flows for Elixir - **parallel_stream** (v1.1.0, 43.8M downloads, 103 stars) — Parallel stream operations for Elixir - **paratize** (v2.1.5, 29.8K downloads, 29 stars) — Elixir library providing some handy parallel processing facilities. ### Queues Queue implementations - **blocking_queue** (v1.3.0, 287.1K downloads, 55 stars) — BlockingQueue is a simple queue implemented as a GenServer. It has a fixed maximum length established when it is created. ### Stream Processing Data ingestion pipelines and parallel computation with back-pressure - **broadway** (v1.2.1, 12.3M downloads, 2.6K stars) — Build concurrent and multi-stage data ingestion and data processing pipelines - **gen_stage** (v1.3.2, 58.6M downloads, 1.6K stars) — Producer and consumer actors with back-pressure for Elixir - **flow** (v1.2.4, 8.7M downloads, 1.6K stars) — Computational parallel flows for Elixir - **broadway_kafka** (v0.4.4, 2.6M downloads, 249 stars) — A Kafka connector for Broadway - **broadway_rabbitmq** (v0.8.2, 3.1M downloads, 195 stars) — A RabbitMQ connector for Broadway - **broadway_sqs** (v0.7.4, 4.7M downloads, 97 stars) — A SQS connector for Broadway ## Cryptocurrencies ### Ethereum Tools Ethereum tools, validators, and clients - **eip_55** (v0.1.0, 25.1K downloads, 7 stars) — Encode and validate an Ethereum address against EIP-55 checksum in Elixir. - **fast_eip_55** (v0.3.0, 1.3K downloads, 1 stars) — Faster Rust Keccak implementation of EIP-55. Encode and validate an Ethereum address against EIP-55 checksum in Elixir. ## Data & Storage ### Data Mapping Packages that allow interaction with data via mapping and query language - **ecto** (v3.13.5, 138.3M downloads, 6.4K stars) — A toolkit for data mapping and language integrated query for Elixir ### File Uploads File upload and storage abstraction libraries - **waffle** (v1.1.10, 3.3M downloads, 808 stars) — Flexible file upload and attachment library for Elixir. - **waffle_ecto** (v0.0.12, 2.3M downloads, 123 stars) — An integration with Waffle and Ecto. ### InfluxDB Clients Packages that allow interaction with InfluxDB - **instream** (v2.2.1, 1.1M downloads, 228 stars) — InfluxDB driver for Elixir - **instream_with_delete** (226 downloads, 228 stars) — InfluxDB driver for Elixir - **fluxter** (v0.11.0, 123.7K downloads, 105 stars) — High-performance and reliable InfluxDB writer for Elixir. - **influx_udp** (v1.1.2, 45.8K downloads, 30 stars) — InfluxDB UDP writer - **ex_flux** (v0.2.1, 5.8K downloads, 4 stars) — InfluxDB driver for Elixir - **influxdb** (v0.2.1, 21.5K downloads, 6 stars) — InfluxDB client library - **influx_ex** (v0.3.1, 916 downloads, 4 stars) — InfluxDB v2.x API library - **udpflux** (v0.0.2, 811 downloads, 4 stars) — An opinionated UDP-only InfluxDB client - **influxql** (v0.2.1, 959.9K downloads, 2 stars) — InfluxQL utility/tooling package - **inflex_db** (v0.1.2, 438 downloads, 1 stars) — Elixir client for InfluxDB - **flux_influxdb** (v0.0.3, 716 downloads, 0 stars) — Manage InfluxDB data - **influx** (v0.0.1, 376 downloads, 0 stars) — InfluxDB driver for Elixir. ### Kafka Clients Packages that allow interaction with Kafka - **brod** (v4.5.2, 9.5M downloads, 682 stars) — Apache Kafka Erlang client library - **kafka_ex** (v0.15.0, 32.3M downloads, 608 stars) — Elixir client for Apache Kafka with automatic API version negotiation, SASL authentication (PLAIN, SCRAM, OAuth, MSK IAM), consumer groups, compression, and telemetry support. - **kafka_ex_tc** (v0.13.0, 83.0K downloads, 608 stars) — Kafka client for Elixir/Erlang. - **kaffe** (v2.0.0, 1.1M downloads, 164 stars) — An opinionated Elixir wrapper around brod, the Erlang Kafka client, that supports encrypted connections to Heroku Kafka out of the box. - **kafka_protocol** (v4.3.4, 9.8M downloads, 96 stars) — Kafka protocol library for Erlang/Elixir - **erlkaf** (v2.2.1, 112.5K downloads, 92 stars) — erlkaf - Erlang Kafka library based on librdkafka - **elsa** (v0.12.3, 285.3K downloads, 77 stars) — Elsa is a full-featured Kafka library written in Elixir and extending the :brod library with additional support from the :kafka_protocol Erlang libraries to provide capabilities not available in :brod. - **misha_cafex** (v0.0.6, 1.2K downloads, 70 stars) — Cafex is a pure Elixir implementation of Kafka client. - **kayrock** (v0.2.0, 37.1M downloads, 41 stars) — Elixir interface to the Kafka protocol - **kafka_consumer** (v2.0.0, 5.1K downloads, 26 stars) — Consumer for Kafka using brod - **kvasir** (v0.0.4, 3.1K downloads, 16 stars) — Opinionated Kafka library. - **kafe** (v2.2.3, 19.5K downloads, 7 stars) — A Kafka client for Erlang and Elixir - **kaffeine** (v0.2.0, 2.4K downloads, 1 stars) — Framework for consuming Kafka events ### MemcacheD Clients MemcacheD client libraries - **memcachir** (v3.3.1, 733.3K downloads, 8 stars) — Memcached client, with connection pooling and cluster support. - **cream** (v0.2.0, 104.0K downloads, 8 stars) — Dalli compatible memcached client with cluster support. - **memcached_discovery** (v0.1.3, 79.3K downloads) — Connection manager for a cluster of nodes ### Mnesia Clients Mnesia client libraries - **mnesiac** (v0.3.14, 133.7K downloads, 137 stars) — Auto clustering for Mnesia made easy! - **mnesiam** (v0.1.1, 2.3K downloads, 20 stars) — Mnesiam is a Mnesia db manager for painless Mnesia clustering. - **otplabs** (v0.1.0, 161 downloads, 3 stars) — Otplabs-lib provides Horde and Mnesia Supervisor, Horde Registry and NodeObserver that loads nodes dynamically when they start. Those recives notitication when a node up and down and update Horde and mnesia cluster. ### MySQL Clients Packages that allow interaction with MySQL - **mysql** (v1.9.0, 539.7K downloads, 374 stars) — MySQL/OTP - Erlang MySQL client driver - **myxql** (v0.8.0, 5.5M downloads, 292 stars) — MySQL 5.5+ driver for Elixir - **mariaex** (v0.9.1, 2.3M downloads, 262 stars) — Pure elixir database driver for MariaDB / MySQL. - **inaka_emysql** (v0.5.0, 3.2K downloads, 12 stars) — Emysql - Erlang MySQL driver - **p1_mysql** (v1.0.28, 158.7K downloads, 18 stars) — Pure Erlang MySQL driver ### PostgreSQL Clients Packages that allow interaction with PostgreSQL - **postgrex** (v0.22.0, 132.5M downloads, 1.2K stars) — PostgreSQL driver for Elixir - **epgsql** (v4.8.0, 2.5M downloads, 442 stars) — PostgreSQL Client - **pgo** (v0.20.0, 137.0K downloads, 98 stars) — Postgres client with connection pool - **p1_pgsql** (v1.1.40, 179.7K downloads, 19 stars) — PostgreSQL driver ### Redis Clients Redis client libraries - **exredis** (v0.3.0, 1.3M downloads, 357 stars) — Redis client for Elixir - **redis** (v0.1.0, 12.3K downloads, 357 stars) — Redis commands for Elixir - **eredis** (v1.7.1, 14.6M downloads, 44 stars) — Non-blocking Redis client with focus on performance and robustness. - **radish** (v0.16.0, 4.9K downloads, 42 stars) — A Gleam client for Valkey, KeyDB, Redis and other tools with compatible APIs - **rediscl** (v1.0.0, 5.0K downloads, 13 stars) — A minimal redis client with connection pooling - **mc_eredis** (v2.6.2, 60.9K downloads, 5 stars) — Erlang Redis Client - **ex_redis_pool** (v0.2.1, 14.7K downloads, 10 stars) — Elixir Redis client with sync/async connection pools, sharding, and one-time hostname resolution. - **ledis** (v0.3.0, 189 downloads, 6 stars) — An LFE Redis Client Library - **eredis_sync** (v0.1.4, 21.9K downloads, 3 stars) — A direct Redis client operating on a TCP socket - **yar** (v0.1.0, 523 downloads, 8 stars) — Yet Another Redis client (implemented in pure elixir) - **gledis** (v0.2.0, 275 downloads, 3 stars) — Gleam Redis client - **raditz** (v0.1.0, 11.2K downloads, 2 stars) — Pooled Redis client for Elixir based on Redix. - **lib_redis** (v0.1.3, 483 downloads) — A simple wrap of redix, support pool and cluster ### TimescaleDB Clients Packages that allow interaction with TimescaleDB - **timescale** (v0.1.1, 137.0K downloads, 130 stars) — Easy time-series data in TimescaleDB with Ecto - **ecto_timescaledb** (v0.10.0, 1.8K downloads, 7 stars) — Extend `Ecto.Query` to write TimescaleDB's SQL as builtin ## Data Manipulation ### Audio and Video Multimedia processing, streaming, and transcoding libraries - **membrane_core** (v1.2.6, 217.3K downloads, 1.5K stars) — Membrane Multimedia Framework (Core) - **ffmpex** (v0.11.0, 478.5K downloads, 239 stars) — FFmpeg command line wrapper. - **ex_m3u8** (v0.16.0, 12.7K downloads, 6 stars) — A package for handling M3U8 playlist files ### Avro Packages that handle parsing, serializing and manipulation of Apache Avro data - **erlavro** (v2.11.0, 1.1M downloads, 138 stars) — Apache Avro support for Erlang/Elixir - **avrora** (v0.30.2, 898.0K downloads, 112 stars) — An Elixir library for working with Avro messages conveniently. It supports local schema files and Confluent® schema registry. - **avro_ex** (v2.2.0, 208.5K downloads, 70 stars) — An Avro encoding/decoding library written in pure Elixir - **avrolixr** (v0.3.0, 13.3K downloads, 4 stars) — An Elixir wrapper for the `erlavro` Avro package. - **avlizer** (v0.4.0, 35.8K downloads, 20 stars) — Avro Serializer ### BSON Packages that handle parsing, serializing and manipulation of BSON data structures - **bson** (v0.4.4, 21.1K downloads, 26 stars) — BSON implementation for Elixir - **bsoneach** (v0.4.1, 11.1K downloads, 9 stars) — Applies a function to each document in a BSON file. - **cyanide** (v2.0.0, 237.0K downloads, 13 stars) — An Elixir BSON encoding/decoding library. - **cbson** (v0.1.5, 20.0K downloads, 14 stars) — BSON NIF for Elixir/Erlang language http://bsonspec.org - **bson_erlang** (v0.3.1, 61.5K downloads, 0 stars) — BSON are JSON-like objects with a standard binary serialization. See bsonspec.org - **gleam_bson** (v0.27.0, 3.7K downloads) — bson encoder and decoder for gleam ### CSV Packages that handle parsing, serializing and manipulation of CSV data structures - **nimble_csv** (v1.3.0, 16.8M downloads, 811 stars) — A simple and fast CSV parsing and dumping library - **csv** (v3.2.2, 55.5M downloads, 517 stars) — CSV Decoding and Encoding for Elixir - **ex_csv** (v0.1.5, 185.8K downloads, 46 stars) — CSV for Elixir - **exoffice** (v0.3.2, 50.4K downloads, 33 stars) — File parser for popular excel formats: xls (Excel 2003), csv, xlsx (Excel 2007). Stores data in ets (except for csv, which uses stream). - **csvlixir** (v2.0.4, 515.8K downloads, 33 stars) — CSVLixir is a CSV reader/writer for Elixir. Reading from files returns a stream of lists. Reading from strings returns a list of lists. The writer transforms a (possibly lazy) list of lists into a stream of CSV strings. It can also take a single list and return a single CSV string. - **cesso** (v0.1.3, 16.4K downloads, 26 stars) — CSV handling library for Elixir. - **data_morph** (v0.1.0, 9.0K downloads, 20 stars) — Create Elixir structs, maps with atom keys, and keyword lists from CSV/TSV data. - **erl_csv** (v0.3.3, 1.1M downloads, 4 stars) — A simple library for dealing with CSV files - **csv_parser** (v0.1.3, 2.9K downloads, 4 stars) — A simple csv parser that supports both CSV and XLSX - **list_to_csv** (v1.1.1, 2.2K downloads, 1 stars) — Convert a list of nested maps to `list(list(String.t))` or CSV. Can be used with GraphQL or Ecto. - **ecsv** (v1.4.2, 3.5K downloads, 0 stars) — CSV Stream Parser - **csv2sql** (v1.0.0, 283 downloads, 0 stars) — Csv2Sql is a blazing fast fully automated tool to load huge CSV files into a RDBMS. ### Date and Time Packages for working with dates, times and calendars - **timex** (v3.7.13, 131.1M downloads, 1.8K stars) — Timex is a rich, comprehensive Date/Time library for Elixir projects, with full timezone support via the :tzdata package. If you need to manipulate dates, times, datetimes, timestamps, etc., then Timex is for you! - **calendar** (v1.0.0, 3.0M downloads, 469 stars) — Calendar is a datetime library for Elixir. Timezone support via its sister package `tzdata`. Safe parsing and formatting of standard formats (ISO, RFC, etc.), strftime formatting. Extendable through protocols. - **tzdata** (v1.1.3, 140.2M downloads, 319 stars) — Tzdata is a parser and library for the tz database. - **cocktail** (v0.10.3, 422.5K downloads, 229 stars) — Cocktail is a date/time recurrence library for Elixir based on iCalendar events. It can generate a stream of dates/times based on a set of repeat rules. - **chronos** (v1.8.0, 23.3K downloads, 90 stars) — An Elixir library for handling dates. It can be used to quickly determine a date. In a human readable format. - **open_hours** (v0.1.2, 60.0K downloads, 53 stars) — Time calculations using business hours - **good_times** (v1.1.2, 24.4K downloads, 46 stars) — Expressive and easy to use datetime functions. - **ex_ical** (v0.2.0, 59.5K downloads, 24 stars) — ICalendar parser. - **datix** (v0.3.3, 99.5K downloads, 30 stars) — A date-time parser using `Calendar.strftime` format strings. - **moment** (v0.1.0, 8.9K downloads, 27 stars) — Parse, validate, manipulate, and display dates in Elixir. - **jalaali** (v0.4.1, 13.4K downloads, 24 stars) — Elixir Shamsi calendar. A Jalaali (Jalali, Persian, Khorshidi, Shamsi) calendar system implemention for Elixir. - **timex_interval** (v0.6.0, 4.1K downloads, 9 stars) — A date/time interval library for Elixir projects, based on Timex. - **block_timer** (v0.0.1, 3.3K downloads, 10 stars) — Macros to use :timer.apply_after and :timer.apply_interval with a block - **calendarific** (v0.1.6, 185.4K downloads, 5 stars) — An elixir wrapper for the holiday API Calendarific - **emojiclock** (v2.0.4, 2.5K downloads, 3 stars) — 🕒 An Elixir module for giving you an emoji clock for a given hour. - **calixir** (v0.1.7, 2.8K downloads, 3 stars) — Calixir is a port of the Lisp calendar software calendrica-4.0.cl by Nachum Dershowitz and Edward M. Reingold to Elixir. - **milliseconds** (v0.0.1, 636 downloads, 2 stars) — Simple library to work with milliseconds. Convert text to milliseconds: convert("2d") Convert milliseconds to text: convert(8640000) Calculate future time: future_time("6hrs") ### Encoding and Compression Data compression libraries for Zstandard, Snappy, Brotli, and other formats - **ezstd** (v1.2.3, 402.9K downloads, 68 stars) — zstd binding for erlang - **brotli** (v0.3.3, 419.8K downloads, 31 stars) — brotli compression library wrapper for Erlang - **snappyer** (v1.2.10, 10.5M downloads, 15 stars) — Snappy as nif for Erlang ### HTML Packages that handle parsing, serializing and manipulation of HTML data structures - **floki** (v0.38.0, 50.1M downloads, 2.1K stars) — Floki is a simple HTML parser that enables search for nodes using CSS selectors. - **html_sanitize_ex** (v1.4.4, 7.7M downloads, 288 stars) — HTML sanitizer for Elixir - **meeseeks** (v0.18.0, 290.1K downloads, 323 stars) — Meeseeks is a library for parsing and extracting data from HTML and XML with CSS or XPath selectors. - **html_entities** (v0.5.2, 44.7M downloads, 87 stars) — Decode and encode HTML entities in a string. - **modest_ex** (v2.1.0, 4.1K downloads, 34 stars) — ModestEx - A library to do pipeable transformations on html strings with CSS selectors, e.g. find(), prepend(), append(), replace() etc. - **myhtmlex** (v0.2.1, 2.0K downloads, 15 stars) — A module to decode HTML into a tree, porting all properties of the underlying library myhtml, being fast and correct in regards to the html spec. - **tidy_ex** (358 downloads, 9 stars) — TidyEx corrects and cleans up HTML content by fixing markup errors. Elixir binding to the granddaddy of HTML tools (http://www.html-tidy.org/). Binding implemented as a C-Node based on the excellent example of Lukas Rieder's nodex. ### Image Processing Libraries for manipulating, transforming, and generating images - **mogrify** (v0.9.3, 3.2M downloads, 582 stars) — ImageMagick command line wrapper. - **image** (v0.63.0, 847.3K downloads, 441 stars) — An approachable image processing library primarily based upon Vix and libvips that is NIF-based, fast, multi-threaded, pipelined and has a low memory footprint. - **vix** (v0.38.0, 1.2M downloads, 237 stars) — NIF based bindings for libvips - **thumbnex** (v0.5.1, 100.3K downloads, 74 stars) — Create thumbnails from images and video screenshots. ### JSON Packages that handle parsing, serializing and manipulation of JSON data structures - **poison** (v6.0.0, 119.0M downloads, 2.0K stars) — An incredibly fast, pure Elixir JSON library - **jason** (v1.4.4, 195.4M downloads, 1.7K stars) — A blazing fast JSON parser and generator in pure Elixir. - **jsx** (v3.1.0, 71.4M downloads, 696 stars) — a streaming, evented json parsing toolkit - **jsone** (v1.9.0, 6.0M downloads, 295 stars) — Erlang JSON Library - **json** (v1.4.1, 5.8M downloads, 219 stars) — The First Native Elixir library for JSON encoding and decoding - **jaxon** (v2.0.8, 1.0M downloads, 205 stars) — Jaxon is an efficient and simple event-based JSON parser for Elixir, it's main goal is to be able to parse huge JSON files with minimal memory footprint. - **exjsx** (v4.0.0, 36.6M downloads, 151 stars) — json for elixir - **jsonrs** (v0.3.4, 269.0K downloads, 135 stars) — A fully-featured and performant JSON library powered by Rust - **exjson** (v0.6.0, 28.8K downloads, 71 stars) — A simple Elixir implementation of JSON with an Erlang parser. - **jazz** (v0.2.2, 23.8K downloads, 60 stars) — JSON handling library for Elixir. - **tiny** (v1.0.2, 79.8K downloads, 47 stars) — Tiny JSON parser for Elixir - **jsxn** (v0.2.1, 1.6K downloads, 26 stars) — jsx but with maps - **json_stream_encoder** (v0.2.0, 1.1K downloads, 8 stars) — A simple interface for streaming JSON to IO. ### Markdown Parsers Markdown parser packages that produce an AST - **earmark_parser** (v1.4.44, 39.0M downloads, 71 stars) — AST parser and generator for Markdown - **markright** (v0.7.3, 5.8K downloads, 17 stars) — **The extended, configurable markdown-like syntax parser, that produces an AST.** Supports the full set of `markdown`, plus extensions (custom markup with a bit of elixir code to handle parsing.) The AST produced is understandable by [`XmlBuilder`](https://github.com/joshnuss/xml_builder). ### PDF Packages that handle parsing, serializing and manipulation of PDF documents - **chromic_pdf** (v1.17.0, 836.2K downloads, 474 stars) — Fast HTML-2-PDF/A renderer based on Chrome & Ghostscript - **pdf_generator** (v0.6.2, 3.7M downloads, 341 stars) — A wrapper for wkhtmltopdf and chrome-headless(puppeteer) with optional support for encryption via pdftk. - **gutenex** (v0.2.0, 4.3K downloads, 245 stars) — PDF Generation in Elixir - **puppeteer_pdf** (v1.0.4, 244.5K downloads, 98 stars) — Wrapper for Puppeteer-pdf, a node module that use Puppeteer to convert HTML pages to PDF. - **pdf2htmlex** (v0.2.0, 9.8K downloads, 92 stars) — Convert PDF docs to beautiful HTML files without losing text or format. ### Parser Combinators Libraries for building text parsers using composable combinators - **nimble_parsec** (v1.4.2, 102.3M downloads, 870 stars) — A simple and fast library for text-based parser combinators - **combine** (v0.10.0, 114.3M downloads, 199 stars) — A parser combinator library for Elixir projects. - **abnf_parsec** (v2.1.0, 174.7K downloads, 57 stars) — ABNF in, parser out ### Protobuf Packages that handle parsing, serializing and manipulation of Google Protobuf data - **protobuf** (v0.16.0, 21.9M downloads, 896 stars) — A pure Elixir implementation of Google Protobuf. - **gpb** (v4.21.7, 15.9M downloads, 575 stars) — A compiler for Google protocol buffer definitions files for Erlang. - **exprotobuf** (v1.2.17, 1.6M downloads, 482 stars) — exprotobuf provides native encoding/decoding of protobuf messages via generated modules/structs. - **protox** (v2.0.4, 1.7M downloads, 298 stars) — A fast, easy to use and 100% conformant Elixir library for Google Protocol Buffers (aka protobuf) - **rebar3_gpb_plugin** (v2.23.8, 3.7M downloads, 55 stars) — A rebar3 gpb plugin for compiling .proto files - **google_protos** (v0.4.0, 8.8M downloads, 18 stars) — Protos by Google - **protobuf_generate** (v0.2.0, 51.2K downloads, 16 stars) — Protobuf code generation as a mix task - **hyperbuffs** (v0.2.3, 4.5K downloads, 14 stars) — Hyperbuffs is an Elixir library which strongly connects Phoenix to Protobuf definitions. Based on content negotiation from incoming requests, your controllers will seamlessly accept and respond in either JSON or Protobuf. - **event_store_db_gpb_protobufs** (v2.4.0, 45.6K downloads, 0 stars) — gpb generated protobuf definitions for EventStoreDB v20+ - **plug_protobufs** (v0.1.4, 4.9K downloads, 3 stars) — A plug parser for Protobufs input. This creates a simple and easy way to accept Protobufs as the input to your plug projects. - **pb_lite** (v0.1.0, 189 downloads, 1 stars) — protobuf lite library - **protobuf_ex** (v0.6.1, 4.2K downloads, 1 stars) — A pure Elixir implementation of Google Protobuf. - **open_rtb_protobuf** (v0.1.1, 262 downloads) — OpenRTB Protobuf support for Elixir - **protobuf_fresha** (1.7K downloads, 0 stars) — A pure Elixir implementation of Google Protobuf. - **protocol_buffers** (v0.6.3, 8.2K downloads, 0 stars) — A pure Elixir implementation of Google Protobuf. A fork of tony612's package. ### Unicode Unicode packages - **unicode_util_compat** (v0.7.1, 162.7M downloads, 10 stars) — unicode_util compatibility library for Erlang < 20 ### XLSX (Excel) Packages that handle parsing, serializing and manipulation of XLSX files - **elixlsx** (v0.6.0, 28.4M downloads, 311 stars) — Elixlsx is a writer for the MS Excel OpenXML format (`.xlsx`). - **xlsxir** (v1.6.4, 4.6M downloads, 218 stars) — Xlsx file parser (Excel, LibreOffice, etc.) - **xlsx_reader** (v0.8.9, 886.5K downloads, 115 stars) — XLSX file reader for Elixir - **excellent** (v0.0.1, 1.2K downloads, 23 stars) — A OpenXL (Excel files ending with .xlsx) parser for Elixir. - **xlsx_parser** (v0.1.2, 137.8K downloads, 14 stars) — Simple parsing of xlsx spreadsheet data. Data can be retrieved or written to csv. - **excelion** (v0.0.5, 11.0K downloads, 14 stars) — Excel (xlsx) file reader for Elixir. - **xlsx_stream** (v0.2.1, 8.4K downloads, 8 stars) — Streaming XLSX builder - **fast_xlsx_exporter** (v0.2.2, 54.8K downloads, 2 stars) — Fast xlsx table exporter - **ex_compose** (v1.0.2, 9.3K downloads, 1 stars) — A library for composing XLSX files based off templates, with full support of template styling. ### XML Packages that handle parsing, serializing and manipulation of XML data structures - **sweet_xml** (v0.7.5, 67.7M downloads, 374 stars) — A sweet wrapper of :xmerl to help query XML docs - **erlsom** (v1.5.2, 77.5M downloads, 268 stars) — XML parser. Supports SAX style parsing as well as XML Schema based data mapping: create records from XML (and vice versa) - **saxy** (v1.6.0, 8.1M downloads, 294 stars) — Saxy is an XML parser and encoder in Elixir that focuses on speed and standard compliance. - **xml_builder** (v2.4.0, 73.9M downloads, 187 stars) — XML builder for Elixir - **fast_xml** (v1.1.57, 557.6K downloads, 136 stars) — Fast Expat-based Erlang / Elixir XML parsing library - **quinn** (v1.1.3, 249.6K downloads, 51 stars) — Quinn is a simple XML parser mainly used to parse rss/atom feeds. - **xmlrpc** (v1.4.3, 445.3K downloads, 40 stars) — XML-RPC encoder/decder for Elixir. Supports all valid datatypes. Input (ie untrusted) is parsed with erlsom against an xml-schema for security. - **exml** (v0.1.3, 241.0K downloads, 26 stars) — Most simple Elixir wrapper for xmerl xpath - **exmerl** (v0.1.1, 21.0K downloads, 12 stars) — An Elixir wrapper for parsing XML through the xmerl_* suite of modules - **exoml** (v0.0.10, 88.3K downloads, 7 stars) — A module to decode/encode xml into a tree structure ### YAML Packages that handle parsing, serializing and manipulation of YAML data structures - **yamerl** (v0.10.0, 29.5M downloads, 210 stars) — YAML 1.2 and JSON parser in pure Erlang - **yaml_elixir** (v2.12.1, 23.1M downloads, 177 stars) — YAML parser for Elixir based on native Erlang implementation. - **fast_yaml** (v1.0.39, 364.9K downloads, 53 stars) — Fast YAML native library for Erlang / Elixir - **ymlr** (v5.1.4, 2.2M downloads, 25 stars) — A YAML encoder for Elixir - **yomel** (v0.5.0, 2.3K downloads, 6 stars) — Decodes yaml into elixir terms - **yamel** (v2.0.4, 9.5K downloads, 4 stars) — YAML parser and serializer lib for Elixir. ## Data Structures ### Associative Associative Data Structures - **bimap** (v1.3.0, 636.1K downloads, 34 stars) — Elixir implementation of bidirectional map and multimap ### Bitmap Bitmap data structure implementation - **bitmap** (v1.0.1, 18.1K downloads, 36 stars) — Package to help you create and work with bitmaps (https://en.wikipedia.org/wiki/Bitmap) ### CRDT Conflict-free replicated data type packages - **loom** (v0.0.10, 1.0K downloads, 227 stars) — A modern CRDT library that uses protocols to create composable CRDTs. ### Probabilistic Probabilistic data structure implementations - **bloomex** (v1.2.0, 96.7K downloads, 112 stars) — Bloomex is a pure Elixir implementation of Scalable Bloom Filters. - **cuckoo** (v1.0.2, 3.4K downloads, 42 stars) — Cuckoo is a pure Elixir implementation of Cuckoo Filters. - **exor_filter** (v0.8.2, 814 downloads, 36 stars) — Nif wrapper for xor_filters. - **hypex** (v2.1.0, 11.3K downloads, 21 stars) — Fast HyperLogLog implementation for Elixir/Erlang ### Queues Queue Data Structure implementation - **qex** (v0.5.2, 486.7K downloads, 34 stars) — A `:queue` wrapper with improvements in API and addition of Protocol implementations - **dlist** (v0.0.1, 632 downloads, 5 stars) — Deque implementations ### Sets Sets Data Structure implementation - **sorted_set** (v1.1.0, 2.3K downloads, 23 stars) — SortedSet implementation for Elixir ### Trees Trees implementations - **merkle_tree** (v2.0.0, 45.2K downloads, 98 stars) — A hash tree or Merkle tree is a tree in which every non-leaf node is labelled with the hash of the labels or values (in case of leaves) of its child nodes. Hash trees are useful because they allow efficient and secure verification of the contents of large data structures. - **red_black_tree** (v1.2.0, 1.9K downloads, 37 stars) — Red-Black trees: an ordered key-value store with O(log(N)) performance - **nary_tree** (v0.1.1, 70.9K downloads, 18 stars) — NaryTree implements the data structure for n-ary tree (also called rose tree), where each node in the tree can have zero or more children. NaryTree provides methods for traversal and manipulation of the tree structure and node contents. - **zipper_tree** (v0.1.1, 11.7K downloads, 19 stars) — Methods for travelsal and modification of Trees using a zipper. ### Tries Trie Data Structure implementations - **trie** (v2.0.7, 2.7M downloads, 132 stars) — Erlang Trie Implementation ## Design Patterns ### Event Sourcing CQRS and event sourcing frameworks for building event-driven systems - **commanded** (v1.4.9, 1.4M downloads, 2.0K stars) — Use Commanded to build your own Elixir applications following the CQRS/ES pattern. - **eventstore** (v1.4.8, 1.7M downloads, 1.1K stars) — Event store using PostgreSQL for persistence. ### Monads Monad abstractions and functional composition - **witchcraft** (v1.0.4, 56.1K downloads, 1.2K stars) — Monads and other dark magic (monoids, functors, traversables, &c) - **monadex** (v1.1.3, 18.6K downloads, 307 stars) — Improve pipelines with monads. - **monad** (v1.0.5, 17.1K downloads) — Monads and do-syntax for Elixir ### Presenters Implementations of the Presenter design pattern - **remodel** (v0.0.4, 521.2K downloads, 141 stars) — Remodel is an Elixir presenter package used to transform data structures. This is especially useful when a desired representation doesn't match the schema defined within the database. ## Ecto ### Audit, Versioning and Changes Tracking Packages that track changes on Ecto schemas and data - **ex_audit** (v0.10.0, 585.5K downloads, 371 stars) — Ecto auditing library that transparently tracks changes and can revert them - **carbonite** (v0.16.0, 558.9K downloads, 242 stars) — Audit trails for Elixir/PostgreSQL based on triggers - **ecto_cellar** (v0.4.0, 704 downloads, 81 stars) — Store changes to your models, for auditing or versioning. - **ecto_trail** (v0.4.4, 49.4K downloads, 55 stars) — This package allows to add audit log that is based on Ecto changesets and stored in a separate table. - **ecto_audit** (v0.1.2, 4.2K downloads, 10 stars) — Ecto extensions to support auditing data changes in your Schema. ### Ecto Extensions Packages that add extra functionality to Ecto - **ecto_enum** (v1.4.0, 11.6M downloads, 570 stars) — Ecto extension to support enums in models - **ecto_psql_extras** (v0.8.8, 10.2M downloads, 392 stars) — Ecto PostgreSQL database performance insights. Locks, index usage, buffer cache hit ratios, vacuum stats and more. - **cloak_ecto** (v1.3.0, 5.0M downloads, 213 stars) — Encrypted fields for Ecto - **ecto_autoslug_field** (v3.1.0, 899.2K downloads, 153 stars) — Autoslug field for Ecto. - **ecto_shorts** (v2.4.0, 367.4K downloads, 110 stars) — Helper tools for making ecto interactions more pleasant and shorter - **ecto_state_machine** (v0.3.0, 611.5K downloads, 100 stars) — State machine pattern for Ecto. I tried to make it similar as possible to ruby's gem 'aasm' - **ex_queb** (v1.0.1, 228.3K downloads, 10 stars) — Ecto Filter Query Builder - **ecto_changeset_tools** (v1.0.0, 525.1K downloads, 2 stars) — EctoChangesetTools is a library that extends the validation and formatting utilities found in Ecto.Changeset ### Ecto State Machines Packages that add state machine handling to Ecto - **fsmx** (v0.5.0, 531.3K downloads, 174 stars) — A Finite-state machine implementation in Elixir, with opt-in Ecto friendliness. - **ecto_state_machine** (v0.3.0, 611.5K downloads, 100 stars) — State machine pattern for Ecto. I tried to make it similar as possible to ruby's gem 'aasm' - **ecto_as_state_machine** (v2.0.0, 27.6K downloads, 4 stars) — State machine pattern for Ecto. I tried to make it similar as possible to ruby's gem 'aasm' - **ecto_state_mc** (v0.1.3, 1.8K downloads, 0 stars) — State machine for Ecto. - **estate** (v1.0.0, 3.0K downloads, 0 stars) — A macro that gives ecto schema modules behavior relating to state machines - **simple_ecto_state_machine** (v0.3.0, 3.8K downloads) — A simple state machine compatible with Ecto 1.x ### Pagination Packages that add pagination helpers to Ecto - **paginator** (v1.2.0, 4.4M downloads, 816 stars) — Cursor based pagination for Elixir Ecto. - **flop** (v0.26.3, 2.3M downloads, 800 stars) — Filtering, ordering and pagination with Ecto. - **scrivener_ecto** (v3.1.0, 12.8M downloads, 585 stars) — Paginate your Ecto queries with Scrivener - **kerosene** (v0.9.0, 221.2K downloads, 230 stars) — Pagination for Ecto and Phoenix. - **rummage_ecto** (v2.0.0, 173.9K downloads, 212 stars) — A library that allows searching, sorting and paginating ecto queries - **turbo_ecto** (v1.0.2, 59.0K downloads, 65 stars) — A elixir lib for search, sort, paginate. - **quarto** (v1.1.7, 176.2K downloads, 45 stars) — Quarto is a keyset-based (cursor-based) pagination library for Ecto. - **ecto_cursor** (v0.1.5, 9.5K downloads, 37 stars) — A fully automatic cursor pagination for Ecto. It relies on analysis of the expressions in order_by clause and requires no configuration. - **ecto_cursor_pagination** (v0.1.1, 5.2K downloads, 7 stars) — Ecto Library for cursor pagination. - **ecto_paging** (v0.8.4, 11.9K downloads, 14 stars) — Cursor-based pagination for Ecto. - **fob** (v1.0.6, 16.2K downloads, 5 stars) — A minimalistic keyset pagination library for Ecto queries - **ouroboros** (v0.1.4, 19.6K downloads, 3 stars) — Cursor based pagination for Ecto - **cursor_paginator** (v0.6.1, 3.5K downloads, 2 stars) — Cursor based pagination for Elixir Ecto. - **paged_query** (v0.0.2, 28.5K downloads, 2 stars) — Ecto query helpers for pagination - **dissolver** (v0.9.4, 1.6K downloads) — Pagination for Ecto and Phoenix. ### Soft Deletion Packages that add soft deletion to Ecto - **ecto_soft_delete** (v2.1.0, 761.4K downloads, 124 stars) — Soft deletion with Ecto. - **paranoid** (v0.1.4, 14.6K downloads, 6 stars) — Library for soft deletion of database records. - **soft_repo** (v0.3.0, 685 downloads, 2 stars) — Soft delete using Ecto repo. - **trash** (v0.1.0, 10.5K downloads, 1 stars) — Simple soft deletes for Ecto ## Elixir Language Extensions ### CLI Tools Frameworks and utilities for building command-line interfaces and terminal output - **burrito** (v1.5.0, 115.7K downloads, 1.3K stars) — Burrito is our answer to the problem of distributing Elixir applications across varied environments. Turn your Elixir application into a simple, self-contained, single-file executable for MacOS, Linux, and Windows. - **owl** (v0.13.0, 1.6M downloads, 506 stars) — A toolkit for writing command-line user interfaces. - **progress_bar** (v3.0.0, 1.1M downloads, 337 stars) — Command-line progress bars and spinners. - **table_rex** (v4.1.0, 69.9M downloads, 263 stars) — Generate configurable text-based tables for display (ASCII & more) - **io_ansi_table** (v1.0.40, 37.5K downloads, 25 stars) — Writes data to "stdio" in a table with borders and colors. Can choose a table style to change the look of the table. - **optimus** (v0.6.1, 378.6K downloads, 19 stars) — Command line option parser inspired by clap.rs - **cli_mate** (v0.9.0, 40.2K downloads, 1 stars) — Helpers around OptionParser for options and arguments, embeddable in vendored mix tasks. ### Enum Packages that add more functionalities to Elixir Enums - **minmaxlist** (v0.0.7, 2.8K downloads, 4 stars) — Elixir library extending `Enum.min_by/2`, `Enum.max_by/2` and `Enum.min_max_by/2` to return a list of results instead of just one. ### Error Handling Working with errors and exceptions - **ok** (v2.3.0, 942.5K downloads, 604 stars) — Elegant error/exception handling in Elixir, with result monads. - **exceptional** (v2.1.3, 248.0K downloads, 294 stars) — Error & exception handling helpers for Elixir - **happy** (v1.3.1, 15.3K downloads, 44 stars) — Happy path programming in elixir. Alternative to ok_jose, elixir's 1.2 `with` keyword and that kind of stuff. ### Files and Directories Temporary file management and file system change monitoring - **briefly** (v0.5.1, 3.7M downloads, 304 stars) — Simple, robust temporary file support - **file_system** (v1.1.1, 81.6M downloads, 280 stars) — An Elixir file system change watcher wrapper based on FS, the native file system listener. - **fs** (v11.4.1, 5.3M downloads, 240 stars) — FS Native Listener (Mac Windows Linux) - **temp** (v0.4.9, 48.5M downloads, 84 stars) — An Elixir module to easily create and use temporary files and directories. ### Maps Packages that add more functionalities to Elixir Maps - **map_diff** (v1.3.4, 2.3M downloads, 131 stars) — Calculates the difference between two (nested) maps, and returns a map representing the patch of changes. - **deep_merge** (v1.0.0, 11.7M downloads, 116 stars) — Deep (recursive) merging for maps, keyword lists and whatever else you may want via implementing a simple protocol. - **indifferent** (v0.9.1, 317.1K downloads, 20 stars) — Indifferent access on maps/lists/tuples with custom key transforms. - **mappable** (v0.2.4, 125.4K downloads, 16 stars) — Convert different mappable types to each other in Elixir - **mason** (v0.1.0, 802 downloads, 12 stars) — Mason uses superpowers to coerce maps into structs. This is helpful e.g. when you interface a REST API and want to create a struct from the response. ### Structs Packages that add more functionalities to Elixir Structs - **exconstructor** (v1.3.1, 45.6M downloads, 292 stars) — ExConstructor generates constructor functions for your structs, handling map-vs-keyword-list, string-vs-atom-keys, and camelCase-vs-under_score issues automatically. ### Validations Schema-based and extensible data validation libraries - **norm** (v0.13.1, 2.5M downloads, 698 stars) — Norm is a system for specifying the structure of data. It can be used for validation and for generation of data. Norm does not provide any set of predicates and instead allows you to re-use any of your existing validations. - **vex** (v0.9.2, 3.9M downloads, 603 stars) — An extensible data validation library for Elixir - **params** (v2.3.0, 1.9M downloads, 373 stars) — Parameter structure validation and casting with Ecto.Schema. - **tarams** (v1.8.0, 605.0K downloads, 119 stars) — Phoenix request params validation library - **goal** (v1.2.0, 258.8K downloads, 89 stars) — A parameter validation library based on Ecto - **optimal** (v0.3.7, 73.2M downloads, 50 stars) — A schema based `opt` validator ## Embedded and IoT ### Nerves Core Nerves framework and hardware libraries for embedded Elixir devices - **nerves** (v1.13.1, 569.8K downloads, 2.4K stars) — Craft and deploy bulletproof embedded software - **circuits_uart** (v1.5.5, 431.8K downloads, 204 stars) — Discover and use UARTs and serial ports in Elixir - **circuits_gpio** (v2.1.3, 395.6K downloads, 139 stars) — Use GPIOs in Elixir - **vintage_net** (v0.13.9, 399.1K downloads, 109 stars) — Network configuration and management for Nerves - **nerves_runtime** (v0.13.12, 482.6K downloads, 67 stars) — Small, general runtime utilities for Nerves devices - **circuits_i2c** (v2.1.0, 290.5K downloads, 67 stars) — Use I2C in Elixir - **nerves_ssh** (v1.3.0, 303.0K downloads, 25 stars) — Manage a SSH daemon and subsystems on Nerves devices - **circuits_spi** (v2.0.4, 93.5K downloads, 26 stars) — Use SPI in Elixir ## Localization and Internationalization ### Numbers and Currency Packages that handle number parsing and formatting - **money** (v1.14.0, 34.4M downloads, 848 stars) — Elixir library for working with Money safer, easier, and fun, is an interpretation of the Fowler's Money pattern in fun.prog. - **ex_money** (v5.24.2, 2.7M downloads, 596 stars) — Money functions for operations on and localization of a money data type with support for ISO 4217 currencies and ISO 24165 digial tokens (crypto currencies). - **number** (v1.0.5, 63.8M downloads, 233 stars) — Convert numbers to various string formats, such as currency - **ex_cldr_numbers** (v2.38.0, 5.8M downloads, 46 stars) — Number and currency localization and formatting functions for the Common Locale Data Repository (CLDR). - **currency_formatter** (v0.8.1, 458.9K downloads, 20 stars) — A library to help with formatting a number to a currency using iso standards and other convenience functions related to formatting currencies - **dinero** (v1.3.2, 3.0K downloads, 2 stars) — Elixir library for working with Money (slang Dinero) - **norwegian_id_number** (v0.1.1, 10.1K downloads, 1 stars) — Elixir library to parse and validate Norwegian national identification numbers ### Personal Identifiable Information (Poland) PII tools, validators and formatters for Polish personal data - **peselx** (v0.2.1, 883 downloads, 4 stars) — Validator of PESEL number - Polish national ID number. Checks checksum. - **polish_validators** (v0.1.1, 1.1K downloads, 1 stars) — Library for validate polish numbers: PESEL, NIP, REGON, IBAN (PL) - **ex_pesel** (v0.2.0, 569 downloads, 0 stars) — Library for PESEL number. ### Phone Numbers Packages that parse and format phone numbers - **ex_phone_number** (v0.4.10, 30.5M downloads, 274 stars) — A library for parsing, formatting, and validating international phone numbers. Based on Google's libphonenumber. - **phone** (v0.5.11, 22.4M downloads, 107 stars) — Phone number parser for telephone numbers in international standard or missing international country code. - **ex_phone_number_fresha** (v0.3.4, 67.8K downloads, 5 stars) — A library for parsing, formatting, and validating international phone numbers. Based on Google's libphonenumber. - **elibphonenumber** (v9.0.21, 13.1K downloads, 14 stars) — Erlang driver for libphonenumber. - **antl_phonenumber** (v0.1.9, 26.0K downloads, 4 stars) — An Elixir Google PhoneNumber library client - **mobile_number_format** (v0.4.0, 2.9K downloads, 8 stars) — Parse and validate mobile numbers - **libphonenumber** (v0.1.1, 50.2K downloads, 6 stars) — Elixir partial version of [libphonenumber](https://github.com/googlei18n/libphonenumber) by Google - **libphonenumber_erlang** (v0.2.1, 50.4K downloads, 6 stars) — Libphonenumber for Erlang - **mynumber** (v1.0.0, 463 downloads, 0 stars) — Mynumber Validation for Elixir ## Math & Statistics ### Arithmetic Number theory, mensuration and computation - **decimal** (v2.3.0, 150.1M downloads, 475 stars) — Arbitrary precision decimal arithmetic. - **ratio** (v4.0.1, 1.2M downloads, 42 stars) — This library allows you to use Rational numbers in Elixir, to enable exact calculations with all numbers big and small. - **numbers** (v5.2.4, 1.5M downloads, 41 stars) — Numbers dispatches on any numeric type that follows the `Numeric` behaviour. This allows you to create composite types working with _any_ numeric type (Decimal, Ratio, Tensor, ComplexNum, ???)! ### Linear Algebra Packages for manipulating matrices and/or vectors - **matrex** (v0.6.8, 53.3K downloads, 489 stars) — Blazing fast matrix library for Elixir/Erlang with native C implementation using CBLAS. - **numerix** (v0.6.0, 160.7K downloads, 192 stars) — A collection of useful mathematical functions in Elixir with a slant towards statistics, linear algebra and machine learning - **graphmath** (v2.6.0, 111.3K downloads, 87 stars) — Graphmath is a library for doing 2D and 3D math, supporting matrix, vector, and quaternion operations. - **exmatrix** (v0.0.1, 2.0K downloads, 58 stars) — ExMatrix is a small library for working with matrices, originally developed for testing matrix multiplication in parallel. - **matrix** (v0.3.2, 32.2K downloads, 47 stars) — Matrix is a linear algebra library for manipulating dense matrices. Its primary design goal is ease of use. - **numexy** (v0.1.9, 3.6K downloads, 18 stars) — It is a library for matrix and vector calculation. - **ela** (v1.0.0, 1.9K downloads, 15 stars) — Elixir Linear Algebra (ELA for short) contains functionality for working with both vectors and matrices. - **matrix_reloaded** (v2.3.0, 1.0M downloads, 3 stars) — Library for matrix and vectors working... - **ex_matrix** (v0.1.0, 364 downloads, 0 stars) — ExMatrix is a new Matrix library for Elixir. This library helps you to create a matrix,manipulate it with values and add/subtract two matrices. ### Probabilistic Classifiers Probabilistic Classifiers implementations - **simple_bayes** (v1.0.0, 8.8K downloads, 395 stars) — A Simple Bayes (a.k.a. Naive Bayes) implementation in Elixir. ### Statistics Packages that provide statistical functions - **statistics** (v0.6.3, 1.2M downloads, 141 stars) — Functions for descriptive statistics and common distributions ## Performance ### Benchmarking Running code to see how long it takes, which is faster and/or if improvements have been made - **benchee** (v1.5.0, 9.5M downloads, 1.5K stars) — Versatile (micro) benchmarking that is extensible. Get statistics such as: average, iterations per second, standard deviation and the median. - **benchfella** (v0.3.5, 1.3M downloads, 517 stars) — Microbenchmarking tool for Elixir. - **bmark** (v1.0.3, 34.9K downloads, 71 stars) — A benchmarking tool for Elixir with a focus on comparing results with confidence. ### Caching Packages for caching data - **cachex** (v4.1.1, 18.0M downloads, 1.7K stars) — Powerful in-memory key/value storage for Elixir - **nebulex** (v3.0.0, 6.1M downloads, 1.4K stars) — In-memory and distributed caching toolkit for Elixir - **con_cache** (v1.1.1, 4.7M downloads, 925 stars) — ETS based key-value storage with support for row-level isolated writes, TTL auto-purge, and modification callbacks. - **locker** (v1.0.8, 14.2K downloads, 152 stars) — Distributed de-centralized consistent in-memory key-value store written in Erlang. - **memoize** (v1.4.4, 24.4M downloads, 204 stars) — A method caching macro for elixir using CAS on ETS - **stash** (v2.0.0, 55.2K downloads, 52 stars) — Simple ETS backed key/value store for Elixir - **lru_cache** (v0.1.3, 111.2K downloads, 37 stars) — ETS-based LRU Cache - **gen_spoxy** (v0.0.12, 3.1K downloads, 22 stars) — caching made fun! - **jc** (v1.2.1, 2.1K downloads, 26 stars) — A simple, distributed, in-memory caching system - **elixir_locker** (v0.1.4, 9.3K downloads, 16 stars) — Elixir wrapper for the locker Erlang library. - **cache_money** (v0.6.2, 190.5K downloads, 1 stars) — ETS or Redis based caching for Elixir ## Phoenix ### LiveView Phoenix LiveView and real-time UI packages - **phoenix_live_view** (v1.1.24, 38.4M downloads, 6.7K stars) — Rich, real-time user experiences with server-rendered HTML - **phoenix_live_dashboard** (v0.8.7, 30.9M downloads, 2.1K stars) — Real-time performance dashboard for Phoenix - **surface** (v0.12.2, 846.2K downloads, 2.1K stars) — A component based library for Phoenix LiveView - **live_svelte** (v0.17.4, 193.9K downloads, 1.6K stars) — E2E reactivity for Svelte and LiveView - **live_vue** (v1.0.1, 18.2K downloads, 537 stars) — E2E reactivity for Vue and LiveView - **live_select** (v1.7.5, 543.6K downloads, 248 stars) — Dynamic (multi)selection field for LiveView ### Phoenix Admin Interfaces Packages that add or generate Administration pages to Phoenix Apps - **kaffy** (v0.11.0, 535.1K downloads, 1.4K stars) — Powerfully simple admin package for phoenix applications - **ex_admin** (v0.8.2, 16.7K downloads, 1.2K stars) — An Elixir Phoenix Auto Administration Package. - **torch** (v6.0.0, 544.6K downloads, 1.2K stars) — Rapid admin generator for Phoenix - **live_admin** (v0.12.1, 29.5K downloads, 292 stars) — A admin UI for Phoenix applications built with LiveView - **adminable** (v0.5.0, 102.1K downloads, 16 stars) — Create admin interfaces for Ecto schemas in Phoenix apps - **alkemist** (16.7K downloads, 35 stars) — Provides some helper methods to build manager and admin applications quicker ### Phoenix Components UI component libraries for Phoenix - **petal_components** (v3.0.1, 1.3M downloads, 1.0K stars) — Petal is a set of HEEX components that makes it easy for Phoenix developers to start building beautiful web apps. - **salad_ui** (v0.14.9, 100.1K downloads, 1.0K stars) — Phoenix UI components library inspired by shadcn ui - **phoenix_html** (v4.3.0, 82.3M downloads, 457 stars) — Phoenix view functions for working with HTML templates - **phoenix_template** (v1.0.4, 33.4M downloads, 53 stars) — Template rendering for Phoenix ## Plug Packages ### Plug Authorization Plugs that add authorization policies - **authorize** (v1.0.0, 34.9K downloads, 100 stars) — Rule based authorization for Elixir - **dictator** (v1.1.0, 19.4K downloads, 79 stars) — Plug-based authorization for your web apps. Dictate what your users can and cannot see and access. - **sheriff** (v1.0.0, 11.0K downloads, 42 stars) — Build simple and robust authorization systems with Elixir and Plug. - **bouncer** (v0.3.0, 24.2K downloads, 28 stars) — Token-based authorization and session management for Phoenix (Elixir) - **sphinx** (v0.1.2, 1.1K downloads, 20 stars) — Sphinx is a authorization library for Phoenix apps. - **checkpoint** (v0.1.1, 2.2K downloads, 4 stars) — A plug that handles authorization in phoenix applications via policy modules. - **exbouncer** (v0.0.1, 539 downloads, 4 stars) — An authorization library in Elixir for Plug applications that restricts what resources the current user/admin or any role is allowed to access, - **chalk_authorization_plug** (v0.1.1, 843 downloads, 0 stars) — Chalk authorization system plug for Phoenix Framework - **rampart** (v1.0.1, 831 downloads, 2 stars) — A simple yet flexible authorization library for Plug applications. - **auth_z** (v0.2.0, 2.7K downloads, 1 stars) — Authorization library for Elixir applications - **doorboy** (v0.1.1, 536 downloads, 1 stars) — Simple and Light-Weight Library for Authorization made with Elixir ## Running Apps on Production ### Circuit Breakers Prevent failures from constantly recurring - **fuse** (v2.5.0, 3.1M downloads, 512 stars) — A Circuit breaker implementation for Erlang - **elistrix** (v0.0.5, 2.2K downloads, 19 stars) — A latency / fault tolerance library to help isolate your applications from an uncertain world of slow or failed services. ### Clustering Packages that enable clustering of Erlang nodes - **libcluster** (v3.5.0, 20.1M downloads, 2.1K stars) — Automatic Erlang cluster formation and management for Elixir/Erlang applications - **peerage** (v1.0.3, 664.0K downloads, 399 stars) — Easy clustering, pluggable discovery: via DNS (for Kubernetes, Weave, discoverd, Swarm and others), UDP multicast, or a plain list of nodes. Easy extensibility for custom Providers. - **dns_cluster** (v0.2.0, 5.2M downloads, 242 stars) — Simple DNS clustering for distributed Elixir nodes - **highlander** (v0.2.1, 1.3M downloads, 137 stars) — There can only be one! (process in your cluster) - **pogo** (v0.3.0, 30.1K downloads, 106 stars) — Distributed supervisor for clustered Elixir applications - **squabble** (v0.1.0, 2.3K downloads, 78 stars) — Simple leader election for your cluster - **eredis_cluster** (v0.9.0, 1.1M downloads, 17 stars) — An erlang wrapper for eredis library to support cluster mode - **skycluster** (v1.1.5, 3.7K downloads, 18 stars) — Automatic Erlang cluster formation, messaging and management for Elixir/Erlang applications. - **clusterable** (v0.2.0, 1.6K downloads, 26 stars) — Clusterable makes clustering easier - **cloister** (v0.18.1, 37.2K downloads, 17 stars) — The helper application to manage cluster, that uses hash ring to route requests to nodes. Automatically keeps track of connected nodes, provides helpers to determine where the term is to be executed, to multicast to all the nodes in the cluster and to retrieve current state of the cluster. - **libelection** (v1.0.0, 3.6K downloads, 12 stars) — Library to perform leader election in a cluster of containerized Elixir nodes - **elector** (v0.3.2, 1.7K downloads, 19 stars) — Elects master node from Erlang/Elixir cluster that is agreed by all nodes. - **herd** (v0.4.3, 717.0K downloads, 14 stars) — Connection manager for a cluster of nodes - **nebulex_local_multilevel_adapter** (v0.2.0, 15.5K downloads, 15 stars) — A variant of Multilevel adapter for Nebulex with additional cluster features - **kurasuta** (v0.1.0, 364 downloads, 12 stars) — Clustering library for Elixir - **node_compass** (v0.1.0, 186 downloads, 8 stars) — NodeCompass is an automated hash-ring management system for Elixir clusters - **dns_srv_cluster** (v0.3.0, 459 downloads, 7 stars) — Elixir clustering with DNS SRV records - **maracuja** (v0.2.0, 10.7K downloads, 4 stars) — Spawns singletons that live at most once per cluster - **redix_clustered** (v1.1.1, 6.6K downloads, 2 stars) — Hex package to run redix with cluster support and more - **kantan_cluster** (v0.5.0, 1.6K downloads, 6 stars) — Form a simple Erlang cluster easily in Elixir - **loner** (v0.2.0, 401 downloads, 1 stars) — Loner provides a simple method for creating a registered, supervised singleton process within a multi-node cluster with the help of Horde. - **singleton_supervisor** (v0.2.1, 16.3K downloads, 5 stars) — Singleton supervisor within an erlang cluster - **global_supervisor** (v0.1.1, 648 downloads, 5 stars) — A supervisor that dynamically distributes children across the cluster. - **nebulex_cluster** (v0.1.0, 104.5K downloads, 4 stars) — Nebulex Cluster Utilities - **tailscale** (v0.1.0, 171 downloads, 4 stars) — Create an Elixir cluster with Tailscale. - **galaxy** (v0.6.8, 2.2K downloads, 3 stars) — Seamless node clustering for Elixir - **global_child** (v0.2.1, 2.3K downloads, 2 stars) — Cluster-wide singleton child management - **hydrax** (v0.7.0, 4.7K downloads, 3 stars) — Shared functionality for working with PIDs across a distributed cluster. Acts as a wrapper around [Horde](https://hex.pm/packages/horde), providing a few convenience functions such as helpers for working with two-element registry keys. - **easy_cluster** (v0.1.1, 286 downloads, 1 stars) — The scaffold for the process keeping track of the cluster changes and calling callbacks - **single** (v0.2.0, 17.7K downloads, 1 stars) — Runs supervised, singleton processes within an Erlang cluster. - **stoker** (v0.1.3, 918 downloads, 0 stars) — Stoker makes sure your cluster keeps running - **columbo** (v2.0.0, 1.8K downloads, 0 stars) — Erlang service discovery and tracking system for clusters - **distrimon** (v0.1.0, 172 downloads) — A library to help you run one process in a cluster - **epmdlex** (v0.1.1, 335 downloads) — Run distribute cluster without EPMD. - **peerage_ec2** (v2.1.0, 179.4K downloads) — A Peerage provider for easy clustering on AWS EC2 and Elastic Beanstalk - **redis_cluster_multilock** (v0.1.0, 229 downloads) — A multilock for redis cluster using lua scripts and given key(s) hopefully with shard key(s) ### Configuration Packages and tools working with configurations - **vapor** (v0.10.0, 1.1M downloads, 596 stars) — Dynamic configuration management - **conform** (v2.5.2, 1.3M downloads, 378 stars) — Easy, powerful, and extendable configuration tooling for releases. - **confex** (v3.5.1, 6.8M downloads, 306 stars) — Helper module that provides a nice way to read configuration at runtime from environment variables or via adapter-supported interface. - **dotenv** (v3.1.0, 795.1K downloads, 240 stars) — A port of dotenv to Elixir - **hush** (v1.3.0, 220.8K downloads, 143 stars) — Load configuration and secrets from files, environment variables, AWS, GCP and more. - **ex_conf** (v0.1.3, 7.7K downloads, 36 stars) — Simple Elixir Configuration Management - **configparser_ex** (v5.0.0, 9.1M downloads, 21 stars) — A module that parses INI-like files. Not unlike the Python configparser package. - **hush_aws_secrets_manager** (v1.2.0, 91.2K downloads, 19 stars) — An AWS Secrets Manager Provider for Hush - **hush_gcp_secret_manager** (v1.2.0, 52.1K downloads, 19 stars) — A Google Secret Manager Provider for Hush - **figaro** (v0.1.0, 1.1K downloads, 9 stars) — Simple Elixir project configuration - **figaro_elixir** (v1.0.1, 34.1K downloads, 11 stars) — Environmental variables manager and configuration management tool. ### Cron Tools for managing Cron - **crontab** (v1.2.0, 19.5M downloads, 100 stars) — Elixir library for parsing, writing, and calculating Cron format strings. - **ecron** (v1.1.0, 100.8K downloads, 70 stars) — cron-like/crontab job scheduling library - **cronex** (v0.4.0, 12.4K downloads, 48 stars) — A cron like system built in Elixir, that you can mount in your supervision tree - **citrine** (v0.1.11, 18.3K downloads, 15 stars) — Elixir library for running cron-based scheduled jobs on your Erlang cluster. - **cron** (v0.1.0, 1.4K downloads, 5 stars) — Cron parses cron expressions and calculates execution timings. - **cronitor** (v1.1.0, 1.3K downloads, 4 stars) — An extremely simple wrapper for the cronitor.io ping endpoints. - **ecrontab** (v0.6.1, 16.2K downloads, 4 stars) — crontab for erlang - **ex_cron** (v0.0.3, 1.5K downloads, 1 stars) — Cron schedule generator for Elixir. - **cronider** (v0.1.0, 489 downloads, 2 stars) — Crontab intervals with time collision detection - **cloudi_service_cron** (v2.0.7, 1.8K downloads, 0 stars) — Erlang/Elixir Cloud Framework Cron Service - **cron_scheduler** (v0.2.0, 388 downloads, 0 stars) — Simple cron-like scheduler that was made for educational purposes - **gen_cron** (v0.1.0, 167 downloads, 0 stars) — A CRON-like GenServer stub generator - **mimicron** (v0.1.1, 2.4K downloads, 1 stars) — callstack tracer - **ex_cronofy** (v0.1.0, 212 downloads, 0 stars) — A elixir API client library to utilize Cronofy services to manage calendar events! With this library you can programmatically read and create calendar events. ### Distributed Registry Packages that manage distributed processes - **horde** (v0.10.0, 2.0M downloads, 1.5K stars) — Distributed supervisor & process registry built with DELTA-CRDTs - **swarm** (v3.4.0, 4.0M downloads, 1.2K stars) — A fast, multi-master, distributed global process registry, with automatic distribution of worker processes. - **distributed_tasks** (v0.1.0, 1.8K downloads, 3 stars) — Distributed tasks provide a nice way to run a unique task across elixir cluster. This package is built with TDD in mind, you can easily overwrite behaviour of this package by implementing `DistributedTasks.Behaviour` and setting `Application.put_env(:distributed_tasks, :impl, MockedTasks)`. ### Exception Notification Reporting errors to an external service - **sentry** (v12.0.0, 73.1M downloads, 678 stars) — The Official Elixir client for Sentry - **appsignal** (v2.16.0, 8.9M downloads, 291 stars) — Collects error and performance data from your Elixir applications and sends it to AppSignal - **honeybadger** (v0.24.1, 2.0M downloads, 183 stars) — Elixir client, Plug and error_logger for integrating with the Honeybadger.io exception tracker" - **airbrake** (v0.6.2, 202.3K downloads, 27 stars) — The first Elixir notifier to the Airbrake/Errbit. System-wide error reporting enriched with the information from Plug and Phoenix channels. ### Feature Flags Runtime feature toggle and flag management libraries - **fun_with_flags** (v1.13.0, 6.1M downloads, 1.2K stars) — FunWithFlags, a flexible and fast feature toggle library for Elixir. - **open_feature** (v0.1.3, 19.8K downloads, 18 stars) — OpenFeature SDK for Elixir ### Libcluster Strategies Libcluster strategies - **libcluster_postgres** (v0.2.0, 188.0K downloads, 252 stars) — Postgres strategy for libcluster - **libcluster_ec2** (v0.8.2, 1.3M downloads, 102 stars) — EC2 clustering strategy for libcluster - **libcluster_tailscale** (v0.1.1, 673 downloads, 81 stars) — A Cluster strategy for discovering and connecting Elixir nodes over Tailscale - **libcluster_consul** (v1.3.0, 44.1K downloads, 36 stars) — Consul strategy for libcluster - **libcluster_gae** (v0.1.2, 4.8K downloads, 24 stars) — Clustering strategy for connecting nodes running on Google App Engine. - **libcluster_ecs** (v0.2.0, 7.0K downloads, 11 stars) — libcluster + AWS Elastic Container Service (ECS) - **libcluster_hcloud** (v0.1.1, 1.6K downloads, 10 stars) — Hetzner Cloud clustering strategy for libcluster. - **libcluster_droplet** (v1.1.2, 2.2K downloads, 12 stars) — A libcluster strategy for Digital Ocean Droplets - **libcluster_gig** (v0.3.1, 10.3K downloads, 10 stars) — Clustering strategy for connecting nodes running as Google Instance Groups members. - **libcluster_gce_strategy** (v0.1.0, 14.2K downloads, 4 stars) — Libcluster clustering strategy for Google Cloud Platform instances in an Instance Group. - **libcluster_ec2_tag_strategy** (v0.1.4, 7.1K downloads, 2 stars) — LibCluster EC2 Tag Strategy to help nodes cluster together with different topologies - **libcluster_gce** (v0.0.1, 4.9K downloads, 3 stars) — Clustering strategy for connecting nodes running on Google App Engine. - **libcluster_postgrex_notifications** (v0.1.0, 180 downloads, 3 stars) — Postgrex.Notifications clustering strategy for libcluster - **libcluster_uplink** (v0.4.1, 2.0K downloads, 3 stars) — Uplink strategy for libcluster - **libcluster_db** (v0.2.0, 1.5K downloads, 2 stars) — libcluster + database - **libcluster_etcd** (v1.1.2, 5.3K downloads, 1 stars) — etcd clustering strategy for libcluster - **libcluster_yasd** (v0.1.0, 188 downloads, 1 stars) — YASD Strategy implementation for libcluster. - **libcluster_digitalocean** (939 downloads) — DigitalOcean strategies for libcluster. ### Monitoring & Telemetry Application monitoring, metrics collection, and observability - **telemetry** (v1.3.0, 150.1M downloads, 903 stars) — Dynamic dispatching library for metrics and instrumentations - **opentelemetry** (v1.7.0, 26.5M downloads, 386 stars) — Implementation of stable OpenTelemetry signals - **opentelemetry_api** (v1.5.0, 28.0M downloads, 386 stars) — OpenTelemetry API - **opentelemetry_exporter** (v1.10.0, 25.6M downloads, 386 stars) — OpenTelemetry Protocol Exporter - **prometheus_ex** (v5.1.0, 66.7M downloads, 421 stars) — Elixir-friendly Prometheus monitoring system client. - **prometheus** (v6.1.2, 86.5M downloads, 354 stars) — Prometheus.io client in Erlang - **spandex** (v3.2.0, 67.4M downloads, 345 stars) — A platform agnostic tracing library. Contributors welcome. - **statix** (v1.4.0, 72.7M downloads, 283 stars) — Fast and reliable Elixir client for StatsD-compatible servers. - **telemetry_metrics** (v1.1.0, 43.1M downloads, 242 stars) — Provides a common interface for defining metrics based on Telemetry events. - **telemetry_poller** (v1.3.0, 41.7M downloads, 124 stars) — Periodically collect measurements and dispatch them as Telemetry events. - **prometheus_ecto** (v1.4.3, 52.7M downloads, 78 stars) — Prometheus monitoring system client Ecto integration. Observes queries duration. - **prometheus_phoenix** (v1.3.0, 57.8M downloads, 73 stars) — Prometheus monitoring system client Phoenix instrumenter. - **prometheus_plugs** (v1.1.5, 55.1M downloads, 54 stars) — Prometheus monitoring system client Plugs. Http metrics collector and exporter. ### Redis Clustering Redis clustering and distributed lock libraries - **redix_cluster** (v0.0.2, 8.0K downloads, 2 stars) — A wrapper for redix to support cluster mode of redis - **redix_cluster_remastered** (v1.2.1, 2.7K downloads, 1 stars) — A client for managing the connection to a Redis Cluster using Redix as a client. - **erc** (v0.1.1, 617 downloads, 1 stars) — Erlang Redis Cluster Library ### Structured Logging JSON and structured logging backends - **logger_json** (v7.0.4, 11.2M downloads, 281 stars) — This package includes a set of :logger formatters designed to output logs in JSON format. It is compatible with a variety of log management systems that support JSON, including Google Cloud Logging and Error Reporting, Datadog, ElasticSearch, LogStash, FileBeat, and Kibana. - **ink** (v1.2.1, 64.3M downloads, 66 stars) — A backend for the Elixir Logger that logs JSON and can filter sensitive data. - **logfmt** (v3.3.3, 765.8K downloads, 28 stars) — Logfmt is a module for encoding and decoding logfmt-style log lines. ## Security ### Encryption Data encryption and cryptographic utilities - **cloak** (v1.1.4, 6.8M downloads, 617 stars) — Elixir encryption library - **cloak_ecto** (v1.3.0, 5.0M downloads, 213 stars) — Encrypted fields for Ecto - **ex_crypto** (v0.10.0, 2.4M downloads, 159 stars) — A wrapper around the Erlang Crypto module with sensible defaults for common tasks. ### JWT & Tokens JSON Web Token generation, signing, and verification - **guardian** (v2.4.0, 15.1M downloads, 3.5K stars) — Elixir Authentication framework - **joken** (v2.6.2, 54.0M downloads, 813 stars) — JWT (JSON Web Token) library for Elixir. - **jose** (v1.11.12, 106.4M downloads, 334 stars) — JSON Object Signing and Encryption (JOSE) for Erlang and Elixir. ### Password Hashing Libraries for securely hashing and verifying passwords - **comeonin** (v5.5.1, 61.7M downloads, 1.3K stars) — A specification for password hashing libraries - **argon2_elixir** (v4.1.3, 7.7M downloads, 251 stars) — Argon2 password hashing algorithm for Elixir - **bcrypt_elixir** (v3.3.2, 51.3M downloads, 174 stars) — Bcrypt password hashing algorithm for Elixir - **pbkdf2_elixir** (v2.3.1, 2.5M downloads, 53 stars) — Pbkdf2 password hashing algorithm for Elixir. ### Static Security Analysis Tools for finding security vulnerabilities in Elixir code - **mix_audit** (v2.1.5, 9.1M downloads, 369 stars) — MixAudit provides a `mix deps.audit` task to scan a project Mix dependencies for known Elixir security vulnerabilities - **sobelow** (v0.14.1, 39.3M downloads, 40 stars) — Security-focused static analysis for Elixir & the Phoenix framework ## Templating & Template Languages ### HAML HAML template packages - **calliope** (v0.4.2, 198.9K downloads, 197 stars) — An Elixir library for parsing haml templates. ### HTML HTML template packages - **temple** (v0.14.1, 154.7K downloads, 509 stars) — An HTML DSL for Elixir - **eml** (v0.7.1, 4.0K downloads, 114 stars) — Eml makes markup a first class citizen in Elixir. It provides a flexible and modular toolkit for generating, parsing and manipulating markup. It's main focus is html, but other markup languages could be implemented as well. - **taggart** (v0.1.5, 1.7K downloads, 35 stars) — Tag-based markup in Elixir. Supports standard HTML tags as well as custom tag definitions. ### Liquid Liquid template packages - **solid** (v1.2.2, 994.7K downloads, 247 stars) — Liquid Template engine - **liquex** (v0.13.1, 169.8K downloads, 45 stars) — Liquid template parser for Elixir. 100% compatibility with the Liquid gem for Ruby. ### Markdown Markdown template packages - **earmark** (v1.4.48, 71.9M downloads, 901 stars) — Earmark is a pure-Elixir Markdown converter. It is intended to be used as a library (just call Earmark.as_html), but can also be used as a command-line tool (run mix escript.build first). Output generation is pluggable. - **cmark** (v0.10.0, 140.8K downloads, 98 stars) — Elixir NIF for cmark (C), a parser library following the CommonMark spec, a compatible implementation of Markdown. - **discount** (v0.7.0, 3.7K downloads, 21 stars) — Elixir NIF for discount, a Markdown parser ### Mustache Mustache template packages - **bbmustache** (v1.12.2, 8.5M downloads, 186 stars) — Binary pattern match Based Mustache template engine for Erlang/OTP - **mustache** (v0.5.1, 711.2K downloads, 69 stars) — A Mustache implementation for Elixir - **mustachex** (v0.0.2, 13.4K downloads, 18 stars) — Mustache for Elixir - **stache** (v0.2.1, 3.6K downloads, 1 stars) — Mustache templates in Elixir. ### Slim Slim template packages - **slim_fast** (v0.10.0, 8.2K downloads, 377 stars) — An Elixir library for rendering slim templates. ## Testing ### Browser Testing Write and run automated tests of your web app in a real-world browser environment - **wallaby** (v0.30.12, 2.9M downloads, 1.8K stars) — Concurrent feature tests for elixir ### Clustering Clustering helpers for unit tests - **local_cluster** (v2.1.0, 667.2K downloads, 236 stars) — Easy local cluster creation to aid in unit testing - **ex_unit_clustered_case** (v0.5.0, 33.7K downloads, 64 stars) — An extension for ExUnit for simplifying tests against a clustered application - **ex_unit_cluster** (v0.7.0, 49.2K downloads, 2 stars) — Spin up dynamic clusters in ExUnit tests with no special setup necessary. - **test_cluster_task** (v0.5.2, 20.9K downloads, 4 stars) — Run tests in a distributed environment (cluster with several nodes). The code is based on the `distributed_test` by Sam Schneider (credits!) ### Contract Testing Packages that enable Contract Testing - **ex_contract** (v0.1.2, 30.4K downloads, 63 stars) — This is Elixir library application that adds support for design by contract. For intro to DbC methodology see https://en.wikipedia.org/wiki/Design_by_contract. - **pact_elixir** (v0.5.2, 70.1K downloads, 36 stars) — Elixir version of Pact. Enables consumer driven contract testing, providing a mock service and DSL for the consumer project. ### HTTP Recording & Mocking Record and replay HTTP interactions for testing - **bypass** (v2.1.0, 12.0M downloads, 994 stars) — Bypass provides a quick way to create a custom plug that can be put in place instead of an actual HTTP server to return prebaked responses to client requests. This is helpful when you want to create a mock HTTP server and test how your HTTP client handles different types of server responses. - **exvcr** (v0.17.1, 36.9M downloads, 745 stars) — HTTP request/response recording library for elixir, inspired by VCR. ### Mocks and Stubs Packages that help with mocking and stubbing in tests - **mox** (v1.2.0, 27.9M downloads, 1.4K stars) — Mocks and explicit contracts for Elixir - **meck** (v1.1.0, 65.4M downloads, 832 stars) — A mocking framework for Erlang - **mock** (v0.3.9, 19.6M downloads, 690 stars) — A mocking library for the Elixir language. We use the Erlang meck library to provide module mocking functionality for Elixir. It uses macros in Elixir to expose the functionality in a convenient manner for integrating in Elixir tests. - **hammox** (v0.7.1, 4.1M downloads, 587 stars) — Automated contract testing for functions and mocks. - **mockery** (v2.5.0, 2.2M downloads, 94 stars) — Simple mocking library for asynchronous testing. - **mecks_unit** (v0.1.9, 71.3K downloads, 54 stars) — A simple Elixir package to elegantly mock module functions within (asynchronous) ExUnit tests using Erlang's :meck library - **em** (v7.3.0, 24.9K downloads, 23 stars) — An EasyMock inspired mocking library for erlang. - **placebo** (v2.0.0, 152.1K downloads, 15 stars) — A mocking library for ExUnit inspired by RSpec and based on meck. - **ex_meck** (v0.3.0, 844.2K downloads, 2 stars) — A mocking library particularly suitable for stateful property based testing. - **ex_mock** (v0.1.1, 50.1K downloads, 1 stars) — A mocking libary for the Elixir language. We use the Erlang meck library to provide module mocking functionality for Elixir. It uses macros in Elixir to expose the functionality in a convenient manner for integrating in Elixir tests. ### Property-Based Testing Property-based testing packages - **proper** (v1.5.0, 6.2M downloads, 906 stars) — A QuickCheck-inspired property-based testing tool for Erlang - **stream_data** (v1.2.0, 35.3M downloads, 929 stars) — Data generation and property-based testing for Elixir - **propcheck** (v1.5.0, 1.6M downloads, 391 stars) — PropCheck provides property based testing and is an Elixir layer around PropEr. It is also inspired by Quviq's QuickCheck Elixir library. - **quixir** (v0.9.3, 288.1K downloads, 267 stars) — A simple property-based testing framework written in pure Elixir. - **ecto_stream_factory** (v0.2.2, 33.4K downloads, 11 stars) — A factory library for property-based and regular tests ### Test Data Generation Generate fake and random test data - **faker** (v0.18.0, 71.1M downloads, 1.2K stars) — Faker is a pure Elixir library for generating fake data. - **stream_data** (v1.2.0, 35.3M downloads, 929 stars) — Data generation and property-based testing for Elixir ### Test Factory Packages that enable factory data generation in tests - **ex_machina** (v2.8.0, 77.4M downloads, 2.0K stars) — A factory library by the creators of FactoryBot (née FactoryGirl) - **factory_girl_elixir** (v0.1.1, 16.6K downloads, 43 stars) — Minimal implementation of Ruby's factory_girl in Elixir. - **phil_columns** (v3.1.0, 29.3K downloads, 19 stars) — A full featured Elixir/Ecto seeding and factory solution providing means for dev and prod seeding as well as factories for test. ## User Interface and Experience ### Data Visualization Charting, plotting, and interactive data visualization libraries - **contex** (v0.5.0, 925.9K downloads, 759 stars) — Contex - a server-side charting library for Elixir. - **kino** (v0.18.0, 1.2M downloads, 436 stars) — Interactive widgets for Livebook - **vega_lite** (v0.1.11, 1.0M downloads, 202 stars) — Elixir bindings to Vega-Lite - **tucan** (v0.5.1, 50.2K downloads, 224 stars) — A plotting library on top of VegaLite ### HTML Icons Icon collections for HTML documents - **heroicons** (v0.5.7, 2.9M downloads, 122 stars) — Phoenix components for Heroicons! - **ex_heroicons** (v3.1.0, 207.4K downloads, 27 stars) — This package adds a convenient way of using Heroicons with your Phoenix, Phoenix LiveView and Surface applications. Heroicons is "A set of 450+ free MIT-licensed high-quality SVG icons for you to use in your web projects." Created by the amazing folks at Tailwind Labs. - **heroicons_liveview** (v0.5.0, 33.5K downloads, 8 stars) — A collection of Phoenix LiveView Components for all SVG Heroicons - **surface_heroicons** (v0.6.0, 34.6K downloads, 7 stars) — A collection of Surface Components for all SVG Heroicons - **phoenix_heroicons** (v0.2.0, 3.3K downloads, 3 stars) — Package for rendering Heroicons in Phoenix applications - **phx_heroicons** (v0.1.0, 590 downloads) — Heroicons Components for Phoenix LiveView ## Web ### Authentication Packages that handle authentication for the web - **guardian** (v2.4.0, 15.1M downloads, 3.5K stars) — Elixir Authentication framework - **pow** (v1.0.39, 1.8M downloads, 1.7K stars) — Robust user authentication solution - **coherence** (v0.8.0, 216.0K downloads, 1.3K stars) — A full featured, configurable authentication and user management system for Phoenix. - **phx_gen_auth** (v0.7.0, 305.2K downloads, 768 stars) — An authentication system generator for Phoenix 1.5 - **basic_auth** (v2.2.5, 24.8M downloads, 165 stars) — Basic Authentication Plug - **authex** (v2.4.0, 37.7K downloads, 77 stars) — Authex is a simple and opinionated JWT authentication and authorization library. - **simple_token_authentication** (v0.9.0, 1.3M downloads, 14 stars) — A plug that checks for presence of a simple token for authentication ### Authorization Packages that provide authorization policies - **bodyguard** (v2.4.3, 3.5M downloads, 791 stars) — Bodyguard is a simple, flexibile authorization library with a focus on Phoenix apps. - **canary** (v1.2.0, 471.1K downloads, 484 stars) — An authorization library to restrict what resources the current user is allowed to access, and load those resources for you. - **canada** (v2.0.0, 1.3M downloads, 457 stars) — A DSL for declarative permissions - **let_me** (v1.2.5, 246.6K downloads, 302 stars) — Authorization library with a DSL and introspection - **policy_wonk** (v1.0.0, 291.0K downloads, 184 stars) — Plug based authorization and resource loading. Aimed at Phoenix, but depends only on Plug. MIT license Updated to compile clean with Elixir 1.4 - **authorize** (v1.0.0, 34.9K downloads, 100 stars) — Rule based authorization for Elixir - **terminator** (v0.5.2, 2.4K downloads, 63 stars) — Elixir ACL library for managing user abilities and permissions with support of ecto and compatibility with absinthe - **pundit** (v1.1.1, 38.0K downloads, 40 stars) — Simple authorization helpers for Elixir structs - **can** (v0.0.4, 8.5K downloads, 21 stars) — Simplified authorization for Phoenix - **aegis** (v0.2.0, 17.4K downloads, 3 stars) — Lightweight, flexible resource authorization. - **policy** (v1.0.0, 372 downloads, 5 stars) — Policy is an authorization management framework for Phoenix. It aims to be minimally invasive and secure by default. - **auval_office** (v0.1.0, 286 downloads, 3 stars) — A flexible authorization library - **chalk_authorization** (v0.1.1, 884 downloads, 1 stars) — Authorization system with role support - **can_i** (v0.1.1, 2.7K downloads, 0 stars) — A small and simple authorization system for Elixir based applications - **meseeks** (v0.1.0, 191 downloads, 0 stars) — Can do! A simple Elixir authorization system! - **simple_can** (v1.0.0, 2.0K downloads, 0 stars) — A simple library to facilitate authorization. ### CORS Cross-Origin Resource Sharing middleware - **corsica** (v2.1.3, 9.4M downloads, 536 stars) — Plug-based swiss-army knife for CORS requests. - **cors_plug** (v3.0.3, 44.8M downloads, 404 stars) — An Elixir Plug that adds Cross-Origin Resource Sharing (CORS) headers to requests and responds to preflight requests (OPTIONS). ### HTTP Clients HTTP Clients - **httpoison** (v2.3.0, 128.5M downloads, 2.4K stars) — Yet Another HTTP client for Elixir powered by hackney - **tesla** (v1.16.0, 69.8M downloads, 2.1K stars) — HTTP client library, with support for middleware and multiple adapters. - **hackney** (v3.2.0, 164.9M downloads, 1.4K stars) — Simple HTTP client with HTTP/1.1, HTTP/2, and HTTP/3 support - **mint** (v1.7.1, 56.4M downloads, 1.4K stars) — Small and composable HTTP client. - **finch** (v0.21.0, 53.0M downloads, 1.3K stars) — An HTTP client focused on performance. - **req** (v0.5.17, 10.7M downloads, 1.3K stars) — Req is a batteries-included HTTP client for Elixir. - **mojito** (v0.7.12, 1.3M downloads, 342 stars) — Fast, easy to use HTTP client based on Mint - **maxwell** (v2.4.0, 111.9K downloads, 109 stars) — Maxwell is an HTTP client adapter. - **fusco** (v0.1.1, 296.2K downloads, 33 stars) — Fast and Ultra Slim Connection Oriented HTTP Client ### OAuth Clients OAuth 1.0 and 2.0 clients - **oauth2** (v2.1.0, 13.2M downloads, 771 stars) — An Elixir OAuth 2.0 Client Library - **oauther** (v1.3.0, 26.3M downloads, 71 stars) — A library to authenticate using the OAuth 1.0 protocol. ### OAuth2 Servers Packages that add OAuth 2.0 server functionality to your app - **oauth** (v2.1.0, 58.8K downloads, 292 stars) — An Erlang OAuth 1.0 implementation - **ex_oauth2_provider** (v0.5.7, 456.1K downloads, 198 stars) — No brainer OAuth 2.0 provider - **phoenix_oauth2_provider** (v0.5.1, 264.5K downloads, 86 stars) — The fastest way to set up OAuth 2.0 server in your Phoenix app - **boruta** (v2.3.5, 359.9K downloads, 79 stars) — Core of an OAuth/OpenID Connect provider enabling authorization in your applications. - **p1_oauth2** (v0.6.14, 211.1K downloads, 10 stars) — Erlang OAuth 2.0 implementation ### OpenAPI, Swagger, API Blueprint Generate or serve API documentation - **open_api_spex** (v3.22.2, 9.9M downloads, 826 stars) — Leverage Open Api Specification 3 (swagger) to document, test, validate and explore your Plug and Phoenix APIs. - **phoenix_swagger** (v0.8.5, 3.0M downloads, 710 stars) — PhoenixSwagger is the library that provides swagger integration to the phoenix web framework. - **bureaucrat** (v0.2.10, 1.1M downloads, 371 stars) — Generate Phoenix API documentation from tests - **xcribe** (v0.7.12, 72.5K downloads, 61 stars) — A lib to generate API documentation from test specs - **blue_bird** (v0.4.2, 111.3K downloads, 57 stars) — BlueBird generates API documentation from annotations in controllers actions and tests cases. - **phoenix_api_docs** (v0.1.0, 9.9K downloads, 26 stars) — PhoenixApiDocs generates API documentation from annotations in controllers actions and tests cases. - **apocryphal** (v0.2.8, 21.5K downloads, 17 stars) — Swagger based document driven development for ExUnit ### Rate Limiting Request rate limiting and throttling - **hammer** (v7.2.0, 30.5M downloads, 898 stars) — A rate-limiter with plugable backends. - **ex_rated** (v2.1.0, 5.9M downloads, 460 stars) — ExRated, the OTP GenServer with the naughty name that allows you to rate-limit calls to any service that requires it. For example, rate-limit calls to your favorite API which requires no more than `limit` API calls within a `scale` milliseconds time window. - **plug_attack** (v0.4.3, 1.5M downloads, 447 stars) — A plug building toolkit for blocking and throttling abusive requests. - **hammer_backend_redis** (v7.1.0, 22.9M downloads, 56 stars) — Redis backend for Hammer rate-limiter ### Single Sign-On Packages that add Single Sign-On (SSO) authentication - **ueberauth** (v0.10.8, 8.9M downloads, 1.7K stars) — An Elixir Authentication System for Plug-based Web Applications - **assent** (v0.3.1, 1.5M downloads, 521 stars) — Multi-provider framework ### Web Frameworks Frameworks designed to support the development of web applications, web services, and web APIs - **phoenix** (v1.8.4, 146.8M downloads, 22.9K stars) — Peace of mind from prototype to production - **ash** (v3.18.0, 1.3M downloads, 2.3K stars) — A declarative, extensible framework for building Elixir applications. - **maru** (v0.13.2, 247.6K downloads, 1.3K stars) — REST-like API micro-framework for elixir inspired by grape. - **sugar** (v0.5.0, 10.6K downloads, 432 stars) — Modular web framework - **trot** (v0.7.0, 4.0K downloads, 417 stars) — A web micro-framework based on Plug and Cowboy. - **nitro** (v9.9.6, 49.0K downloads, 56 stars) — NITRO Nitrogen Web Framework ### WebSockets WebSocket client libraries for real-time communication - **gun** (v2.2.0, 11.8M downloads, 934 stars) — HTTP/1.1, HTTP/2 and Websocket client for Erlang/OTP. - **fresh** (v0.4.4, 53.8K downloads, 62 stars) — WebSocket client for Elixir, built atop the Mint ecosystem - **websockex** (v0.5.1, 3.7M downloads, 12 stars) — An Elixir WebSocket client