awesome-elixir
A curated list of amazingly awesome Elixir and Erlang libraries, resources and shiny things. Updates:
https://github.com/h4cc/awesome-elixir
Last synced: 1 day ago
JSON representation
-
Framework Components
- phoenix_html_simplified_helpers - Some helpers for phoenix html (truncate, time_ago_in_words, number_with_delimiter).
- phoenix_linguist - A project that integrates Phoenix with Linguist, providing a plug and view helpers. It looks abandoned: its last commit was on 2015 and its CI runs Elixir 1.0.3.
- phoenix_live_reload - Provides live-reload functionality for Phoenix.
- phoenix_meta_tags - Generate meta tags for a website.
- phoenix_pubsub_postgres - Postgresql PubSub adapter for Phoenix apps.
- phoenix_pubsub_rabbitmq - RabbitMQ adapter for Phoenix's PubSub layer.
- phoenix_pubsub_redis - The Redis PubSub adapter for the Phoenix framework.
- phoenix_pubsub_vernemq - The VerneMQ MQTT pubsub adapter for the Phoenix framework.
- phoenix_slime - Slim template support for Phoenix.
- phoenix_svg - Use inline SVGs in Phoenix.
- phoenix_token_auth - Token authentication solution for Phoenix. Useful for APIs or single page apps.
- phoenix_turnstile - Phoenix components and helpers for using CAPTCHAs with Cloudflare Turnstile.
- phx_component_helpers - Extensible live_components, without boilerplate.
- plug_accesslog - Plug for writing access logs.
- plug_and_play - Set up a Plug application with less boilerplate.
- plug_auth - Collection of authentication-related plugs.
- plug_checkup - Plug for adding simple health checks to your app.
- plug_cloudflare - Inspired by mod_cloudflare, this Elixir plug parses Cloudflares CF-Connecting-IP HTTP request header into Plug.Conn's remote_ip field.
- plug_forward_peer - Very simple plug which reads X-Forwarded-For or Forwarded header according to RFC7239 and fill conn.remote_ip with the root client ip.
- plug_fprof - A Plug that adds fprof tracing to requests, to allow for easy profiling.
- plug_graphql - Phoenix Plug integration for [GraphQL Elixir](http://graphql-elixir.org/).
- plug_heartbeat - A plug for responding to heartbeat requests.
- plug_jwt - Plug for JWT authentication.
- plug_password - Plug for adding simple cookie-based authentication.
- plug_rails_cookie_session_store - Rails compatible Plug session store.
- plug_redirect_https - Plug to redirect http requests to https requests behind a reverse proxy.
- plug_require_header - Require and extract HTTP headers and handle missing ones.
- plug_response_header - easy manipulation of HTTP response headers.
- plug_ribbon - Injects a ribbon to your web application in the development environment.
- plug_secex - Plug that adds various HTTP Headers to make Phoenix/Elixir app more secure.
- plug_session_memcached - A very simple memcached session store for Elixir's plug.
- plug_sigaws - AWS Signature V4 authentication protection for Phoenix/Plug Routes ([Docs](https://hexdocs.pm/plug_sigaws/PlugSigaws.html)).
- plug_statsd - A plug for automatically sending timing and count metrics to statsd.
- pluggable - Build `plug`-like pipelines with your own token (instead of `%Plug.Conn{}`).
- plugs - Collection of Plug middleware for web applications.
- plugsnag - Bugsnag notifier for Elixir's plug.
- raygun - Capture bugs and send them to Raygun.
- react_phoenix - Render React.js components in Phoenix views focusing on easy installation and Brunch compatibility.
- recaptcha - A simple reCaptcha 2 library for Elixir applications.
- resin - Resin is a plug that will add a configurable delay to every request that's passing through it, unless run in production.
- revision_plate_ex - Plug application and middleware that serves endpoint returns application's REVISION.
- rummage_ecto - A configurable framework to search, sort and paginate Ecto Queries.
- scaffold - A mix task for creating new projects based on templates fetched from a Git-repo.
- scrivener_headers - Helpers for paginating API responses with Scrivener and HTTP headers.
- scrivener_html - Helpers built to work with Scrivener's page struct to easily build HTML output for various CSS frameworks.
- sentinel - An authentication framework for Phoenix extending guardian with routing and other basic functionality.
- trailing_format_plug - An Elixir plug to support legacy APIs that use a rails-like trailing format.
- weebo - An XML-RPC parser/formatter for Elixir, with full support for datatype mapping.
- live_vue - End-to-end reactivity for Phoenix LiveView and Vue.
- phoenix_storybook - A pluggable storybook for your Phoenix components.
- plug - A specification and conveniences for composable modules in between web applications.
- phoenix_pubsub_postgres - Postgresql PubSub adapter for Phoenix apps.
- plug_forward_peer - Very simple plug which reads X-Forwarded-For or Forwarded header according to RFC7239 and fill conn.remote_ip with the root client ip.
- plugsnag - Bugsnag notifier for Elixir's plug.
- rummage_ecto - A configurable framework to search, sort and paginate Ecto Queries.
- rummage_phoenix - A support framework for searching, sorting and paginating models in Phoenix, with HTML support.
- scrivener - Paginate your Ecto queries.
- scrivener_headers - Helpers for paginating API responses with Scrivener and HTTP headers.
- surface - A server-side rendering component library for Phoenix.
- torch - Torch is a rapid admin generator for Phoenix apps. It uses generators rather than DSLs to ensure that the code remains maintainable.
- webassembly - Web DSL for Elixir.
- commanded - Command handling middleware for Command Query Responsibility Segregation (CQRS) applications.
- plug_canonical_host - Plug to ensure all requests are served from a single canonical host.
-
Frameworks
- Flowbite - An open-source UI component library built with Tailwind CSS and compatible with Phoenix/Elixir.
- Ash Framework - A declarative, resource-oriented application framework for Elixir.
- exelli - An Elli Elixir wrapper with some sugar syntax goodies.
- kitto - A framework for interactive dashboards.
- n2o - Distributed Application Server.
- nitro - Nitrogen-compatible Web Framework.
- Petal Components - A set of HEEX components that makes it easy for Phoenix developers to build beautiful web apps.
- phoenix - Elixir Web Framework targeting full-featured, fault tolerant applications with realtime functionality.
- placid - A REST toolkit for building highly-scalable and fault-tolerant HTTP APIs with Elixir.
- rackla - API Gateways in Elixir.
- relax - Simple Elixir implementation of a [jsonapi.org](http://jsonapi.org) server.
- rest - Micro-REST framework with typed JSON.
- RIG - Create low-latency, interactive user experiences for stateless microservices.
- sugar - Modular web framework for Elixir.
- trot - An Elixir web micro-framework.
- Hologram - Full stack Elixir web framework that intelligently transpiles Elixir client-side code to JavaScript.
-
Games
- ECSx - An Entity-Component-System framework providing a battle ship game as a tutorial ([read more on Dockyard blog](https://dockyard.com/blog/2023/07/06/ecsx-a-new-approach-to-game-development-in-elixir)).
- Binbo - A chess representation written in Erlang using [Bitboards](https://www.chessprogramming.org/Bitboards), ready for use on game servers.
- entice - A distributed Entity-Component-System framework, providing its own example MMORPG server.
- pictionary - A multiplayer guessing and drawing game ([skribbl.io](https://skribbl.io/) clone).
- rayex - Raylib bindings to Elixir for games programming.
- Rovex - An implementation of the Mars Rover kata in Elixir transformed in a basic multiplayer game.
- vim_snake - A classical multiplayer snake game with Vim-style keybinding built with Phoenix framework.
- mines - A minesweeper clone in the terminal.
-
Geolocation
- distance_api_matrix - Provide distance and heading calculations via Google distance matrix api.
- geocalc - Calculate distance, bearing and more between latitude/longitude points.
- geocoder - A simple, efficient geocoder/reverse geocoder with a built-in cache.
- geohash - Geohash encode/decode library.
- geohax - Geohash encoding and decoding with neighbors finder.
- geoip - Find geolocation for a given IP, hostname or `Plug.Conn`.
- geolix - MaxMind GeoIP2 database reader/decoder.
- geonames - A simple Elixir wrapper around the GeoNames API.
- ip2location - An Elixir library for IP2Location database.
- ipgeobase - Find Russian and Ukraine city by IP address and find country for other country.
- proj - Elixir coordinate conversion library using OSGeo's PROJ.4.
- segseg - Segment-segment intersection classifier and calculator.
- srtm - Query locations for elevation data from the NASA Shuttle Radar Topography Mission.
- topo - A Geometry library for Elixir that calculates spatial relationships between two geometries.
- wheretz - Elixir version of Ruby gem for lookup of timezone by georgraphic coordinates.
- geo - A collection of GIS functions for Elixir.
- geocoder - A simple, efficient geocoder/reverse geocoder with a built-in cache.
- geohash_nif - Drop in replacement for Geohash encode/decode library implemented as a NIF.
- geolix - MaxMind GeoIP2 database reader/decoder.
-
GUI
-
Hardware
- elixir_ale - Elixir access to hardware I/O interfaces such as GPIO, I2C, and SPI.
- nerves - Framework for building firmware for platforms like Raspberry Pi and BeagleBone Black.
- elixir-circuits - Elixir access to hardware I/O interfaces such as GPIO, I2C, and SPI (old version [elixir_ale](https://github.com/fhunleth/elixir_ale)).
-
HTML
- floki - A simple HTML parser that enables searching using CSS like selectors.
- html_sanitize_ex - HTML sanitizer for Elixir.
- modest_ex - A library to do pipeable transformations on html strings with CSS selectors, e.g. find(), prepend(), append(), replace() etc.
- myhtmlex - Elixir/Erlang bindings for lexborisov's myhtml.
- readability - Readability is for extracting and curating articles.
- texas - Texas is a powerful abstraction over updating your clients using server-side rendering and server-side Virtual DOM diff/patching.
- tidy_ex - Elixir binding to the granddaddy of HTML tools [http://www.html-tidy.org](http://www.html-tidy.org).
- vnu-elixir - Elixir client for the [Nu HTML Checker](https://validator.w3.org/nu/). Provides HTML, CSS, and SVG validation.
-
HTTP
- Ace - HTTP web server and client, supports http1 and http2.
- cauldron - An HTTP/SPDY server as a library.
- Crawler - A high performance web crawler in Elixir.
- elli - Elli is a webserver you can run inside your Erlang application to expose an HTTP API.
- etag_plug - A simple to use shallow ETag plug.
- explode - An easy utility for responding with standard HTTP/JSON error payloads in Plug- and Phoenix-based applications.
- exvcr - HTTP request/response recording library for Elixir, inspired by VCR.
- finch - An HTTP client with a focus on performance, built on top of Mint and NimblePool.
- fuzzyurl - An Elixir library for parsing, constructing, and wildcard-matching URLs. Also available for [Ruby](https://github.com/gamache/fuzzyurl.rb) and [JavaScript](https://github.com/gamache/fuzzyurl.js).
- gun - HTTP/1.1, HTTP/2 and Websocket client for Erlang/OTP.
- hackney - Simple HTTP client written in Erlang.
- http - HTTP server for Elixir.
- http_digex - A module to create basic digest HTTP auth header.
- http_proxy - Multi port HTTP Proxy.
- httpoison - Yet Another HTTP client for Elixir powered by hackney.
- ivar - A lightweight wrapper around HTTPoison that provides a fluent and composable way to build http requests.
- lhttpc - A lightweight HTTP/1.1 client implemented in Erlang.
- Mechanize - Build web scrapers and automate interaction with websites in Elixir with ease.
- mnemonic_slugs - A memorable, mnemonic slug generator in Elixir.
- mochiweb - MochiWeb is an Erlang library for building lightweight HTTP servers.
- neuron - A GraphQL client for Elixir.
- plug_wait1 - Plug adapter for the wait1 protocol.
- raxx - Interface for HTTP webservers, frameworks and clients.
- river - An HTTP/2 client that is lightweight and lightning fast.
- scrape - Scrape any website, article or RSS/Atom Feed with ease.
- sparql_client - A [SPARQL protocol](https://www.w3.org/TR/sparql11-protocol/) client for Elixir.
- spell - Spell is a [Web Application Messaging Protocol](http://wamp-proto.org/) (WAMP) client implementation in Elixir.
- SpiderMan - A base-on Broadway fast high-level web crawling & scraping framework for Elixir.
- Tube - Pure Elixir WebSocket client library.
- uri_query - URI encode nested GET parameters and array values in Elixir.
- uri_template - RFC6570 compliant URI template processor for Elixir.
- web_socket - An exploration into a stand-alone library for Plug applications to easily adopt WebSockets.
- webdriver - This is an implementation of the WebDriver protocol client. It currently supports PhantomJS, FireFox, ChromeDriver and remote webdriver servers (e.g. Selenium).
- yuri - Simple struct for representing URIs.
- finch - An HTTP client with a focus on performance, built on top of Mint and NimblePool.
- httpotion - Fancy HTTP client for Elixir, based on ibrowse.
- req - A batteries-included HTTP client for Elixir.
- etag_plug - A simple to use shallow ETag plug.
- mint - Functional HTTP client for Elixir with support for HTTP/1 and HTTP/2.
- plug_wait1 - Plug adapter for the wait1 protocol.
- sparql_client - A [SPARQL protocol](https://www.w3.org/TR/sparql11-protocol/) client for Elixir.
- tesla - HTTP client library, with support for middleware and multiple adapters.
- Crawly - high-level web crawling & scraping framework for Elixir.
-
Images
- image64 - A tool for working with base64 encoded images.
- alchemic_avatar - Elixir library for generating letter avatar from string.
- artifact - File upload and on-the-fly processing for Elixir.
- bump - A BMP file writer in pure Elixir.
- chunky_svg - A library for drawing things with SVG.
- cloudex - Cloudex is an Elixir library that can upload image files or urls to Cloudinary.
- eikon - An Elixir library providing a read-only interface for image files.
- elixir_exif - Parse exif tags and thumbnail data from jpeg files.
- ex_image_info - An Elixir library to parse images (binaries) and get the dimensions, detected mime-type and overall validity for a set of image formats.
- exexif - Pure Elixir library to extract TIFF and EFIX metadata from jpeg files.
- exfavicon - An Elixir library for discovering favicons.
- gi - An Elixir wrapper for GraphicsMagick command line.
- identicon - An Elixir library for generating 5x5 identicons.
- imgex - Unofficial client library for generating imgix URLs in Elixir.
- png - A pure Erlang library for creating PNG images. It can currently create 8 and 16 bit RGB, RGB with alpha, indexed, grayscale and grayscale with alpha images.
- thumbnex - Create thumbnails from images and video screenshots.
- thumbor_client - Client for Thumbor.
- elixir_exif - Parse exif tags and thumbnail data from jpeg files.
- ex_image_info - An Elixir library to parse images (binaries) and get the dimensions, detected mime-type and overall validity for a set of image formats.
- imagineer - Image parsing in Elixir.
- mogrify - An Elixir wrapper for ImageMagick command line.
-
Instrumenting / Monitoring
- app_optex - Client for AppOptics API. Send metrics and tags to AppOptics time series service.
- elixometer - A light Elixir wrapper around exometer.
- erlang-metrics - A generic interface to different metrics systems in Erlang.
- exometer - Basic measurement objects and probe behavior in Erlang.
- folsom_ddb - DalmatinerDB backend to store folsom metrics.
- graphitex - Graphite/Carbon client for Elixir.
- instream - InfluxDB driver for Elixir.
- instrumental - An Elixir client for [Instrumental](https://instrumentalapp.com/).
- newrelic.ex - Collects metrics from your Elixir/Phoenix application and sends them to [NewRelic](https://newrelic.com/).
- prom_ex - Prometheus metrics and Grafana dashboards for all of your favorite Elixir libraries.
- prometheus-ecto - Ecto instrumenter for prometheus.ex.
- prometheus-phoenix - Phoenix instrumenter for prometheus.ex.
- prometheus-plugs - Plugs instrumenters/exporter for prometheus.ex.
- prometheus_process_collector - Prometheus collector which exports the current state of process metrics including cpu, memory, file descriptor usage and native threads count as well as the process start and up times.
- spandex - Platform agnostic tracing library originally developed for Datadog APM.
- telemetry - Dynamic dispatching library for metrics and instrumentations.
- wobserver - Web based metrics, monitoring, and observer.
Programming Languages
Categories
Third Party APIs
124
ORM and Datamapping
107
Framework Components
89
Algorithms and Data structures
86
Text and Numbers
79
Testing
66
Miscellaneous
62
Authentication
47
HTTP
43
Books
37
Queue
36
Applications
31
Utilities
30
Examples and funny stuff
29
Build Tools
29
Macros
27
Cloud Infrastructure and Management
24
Date and Time
22
Logging
21
Instrumenting / Monitoring
21
Editors
21
Websites
21
Images
21
Networking
20
JSON
19
Geolocation
19
Files and Directories
18
Artificial Intelligence
17
Command Line Applications
16
Cryptography
16
Validations
16
Frameworks
16
Screencasts
16
Configuration
15
Reading
15
Debugging
15
Email
14
XML
13
Release Management
12
Chatting
12
Templating
12
Protocols
12
Caching
11
Deployment
11
REST and API
11
Code Analysis
11
Documentation
10
Static Page Generation
9
Translations and Internationalizations
9
Security
9
Games
8
HTML
8
CSV
7
Other Awesome Lists
7
Errors and Exception Handling
6
Authorization
6
PDF
6
Newsletters
6
Statistics
6
Podcasts
6
Behaviours and Interfaces
6
Community
5
Search
5
Actors
5
Eventhandling
5
Domain-specific language
5
YAML
5
Audio and Sounds
5
Natural Language Processing (NLP)
5
Markdown
5
Feeds
4
Bittorrent
4
Benchmarking
4
Feature Flags and Toggles
4
ECMAScript
4
OTP
4
Styleguides
3
Package Management
3
Native Implemented Functions
3
Lexical analysis
3
Data Visualization
3
BSON
3
Hardware
3
Office
3
Languages
3
Video
2
GUI
2
Cheat Sheets
2
Encoding and Compression
2
WebAssembly
2
SMS
1
Forms
1
QUIC
1
Embedded Systems
1
Version Control
1
Sub Categories
Keywords
elixir
437
elixir-lang
74
phoenix
65
erlang
55
hex
43
ecto
31
elixir-library
26
phoenix-framework
26
plug
21
authentication
14
database
14
http
13
elixir-phoenix
13
testing
11
oauth2
11
json
11
otp
10
ueberauth
10
oauth
10
api
9
package
8
liveview
8
html
8
kubernetes
8
redis
8
slack
8
data-structures
8
macros
7
metrics
7
graphql
7
machine-learning
6
ueberauth-strategies
6
xml
6
exunit
6
functional-programming
6
distributed-systems
6
rest
6
web
6
mix
6
http-client
6
mix-tasks
6
security
6
monitoring
6
redux
5
beam
5
cloud
5
javascript
5
cli
5
configuration
5
websocket
5