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
-
Instrumenting / Monitoring
- appsignal-elixir - Collects error and performance data from your Elixir applications and sends it to [AppSignal](https://appsignal.com/).
- 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.
- prometheus - [Prometheus.io](https://prometheus.io) monitoring system and time series database client in Erlang.
- prometheus.ex - Elixir-friendly [Prometheus.io](https://prometheus.io) monitoring system and time series database client.
-
JSON
- exjson - JSON parser and generator in Elixir.
- jason - A blazing fast JSON parser and generator in pure Elixir.
- jazz - Yet another library to handle JSON in Elixir.
- jose - JSON Object Signing and Encryption (JOSE) for Erlang and Elixir.
- json - Native JSON library for Elixir.
- json_pointer - Implementation of RFC 6901 which defines a string syntax for identifying a specific value within a JSON document.
- json_stream_encoder - JsonStreamEncoder is a streaming encoder for streaming JSON to an IOish thing in Elixir.
- json_web_token_ex - An Elixir implementation of the JSON Web Token (JWT) Standards Track (RFC 7519).
- jsonc - Utilities for working with [jsonc](https://komkom.github.io/jsonc-playground), a superset of json.
- jsx - An Erlang application for consuming, producing, and manipulating json.
- jsxn - jsx but with maps.
- jwalk - Helper module for working with Erlang representations of JSON.
- jwtex - A library to encode and decode [JWT tokens](http://jwt.io/).
- poison - Poison is a new JSON library for Elixir focusing on wicked-fast speed without sacrificing simplicity, completeness, or correctness.
- tiny - Tiny, fast and fully compliant JSON parser for Elixir.
- world_json - topojson country and state/province collections for elixir/erlang.
- ja_serializer - JSONAPI.org Serialization in Elixir.
- joken - Encodes and decodes JSON Web Tokens.
- jsonapi - A project that will render your data models into [JSONAPI Documents](http://jsonapi.org/format/).
-
Languages
- Elchemy - Compiler allowing to translate Elm programming language code to Elixir.
- lighthouse_scheme - A small Lisp-like language and interactive REPL, built in Elixir.
- Monkey - Elixir implementation of an interpreter and REPL for the js-like Monkey programming language.
-
Lexical analysis
- abnf_parsec - ABNF in and parser out.
- ex_abnf - Parser for ABNF Grammars in Elixir.
- lex_luthor - LexLuthor is a Lexer in Elixir which uses macros to generate a reusable lexers.
-
Logging
- quiet_logger - A simple plug to suppress health check logging (e.g.: when using Kubernetes).
- bunyan - Bunyan: An Elixir Logger.
- ecto_dev_logger - An alternative logger for Ecto queries that helps in debugging.
- exlager - Elixir binding for lager.
- gelf_logger - A Logger backend that will generate Graylog Extended Log Format (GELF) messages.
- honeybadger - Error logging to [Honeybadger](https://www.honeybadger.io/).
- json_logger - JSON Logger is a logger backend that outputs elixir logs in JSON format.
- lager - A logging framework for Erlang/OTP by basho.com.
- lager_logger - A lager backend that forwards all log messages to Elixir's Logger.
- logfmt - Logfmt is a module for encoding and decoding logfmt-style log lines.
- logger_logstash_backend - A backend for the Elixir Logger that will send logs to the Logstash UDP input.
- logglix - A logger backend for posting errors to Loggly.
- logster - Easily parsable, one-line logging for Phoenix and Plug applications, inspired by Lograge.
- metrix - Log custom app metrics to stdout for use by Librato and other downstream processors.
- mstore - MStore is a experimental metric store build in erlang, the primary functions are open, new, get and put.
- rogger - Elixir logger to publish log messages in RabbitMQ.
- slack_logger_backend - A logger backend for posting errors to Slack.
- syslog - Erlang port driver for interacting with syslog via syslog(3).
- youtrack_logger_backend - A logger backend that will post messages to [YouTrack](https://www.jetbrains.com/youtrack/) (an issue tracker made by JetBrains).
- rollbax - Exception tracking and logging to [Rollbar](https://rollbar.com/).
- timber - Structured logging platform; turns raw text logs into rich structured events.
-
Macros
- anaphora - Anaphora is the anaphoric macro collection for Elixir. An anaphoric macro is one that deliberately captures a variable (typically it) from forms supplied to the macro.
- apix - Simple convention and DSL for transformation of elixir functions to an API for later documentation and or validation.
- backports - Use new functions in Elixir 1.1 and 1.2.
- eventsourced - Build functional, event-sourced domain models.
- expat - Reusable, composable patterns across Elixir libraries.
- guardsafe - Macros expanding into code that can be safely used in guard clauses.
- kwfuns - Macros to create functions with syntax based keyword parameters with default values.
- lineo - parse transform for accurate line numbers.
- matcha - First-class match specifications for Elixir `:ets` querying and function call tracing.
- mdef - Easily define multiple function heads in Elixir.
- named_args - Allows named arg style arguments in Elixir.
- ok_jose - Pipe elixir functions that match `{:ok,_}`, `{:error,_}` tuples or custom patterns.
- opus - A framework for pluggable business logic components.
- pathex - Zero-dependency, blazing fast functional lenses.
- pattern_tap - Macro for tapping into a pattern match while using the pipe operator.
- pipe_here - Easily pipe values into any argument position.
- pipe_to - The enhanced pipe operator which can specify the target position.
- pipes - Macros for more flexible composition with the Elixir Pipe operator.
- pit - Transform values as they flow inside a pipe.
- rebind - rebind parse transform for Erlang.
- shorter_maps - ~M sigil for map shorthand. `~M{id name} ~> %{id: id, name: name}`.
- typed_struct - An Elixir library for defining structs with a type without writing boilerplate code.
- unsafe - Generate easy unsafe (!) bindings for Elixir functions.
- typed_structor - A library for defining structs with types effortlessly.
- then - Simple way to set after-function callback.
- crudry - Crudry is an elixir library for DRYing CRUD of Phoenix Contexts and Absinthe Resolvers.
- rulex - Simple rule handler using Elixir pattern matching.
-
Markdown
- cmark - Elixir NIF for CommonMark (in C), a parser following the CommonMark spec.
- discount - Elixir NIF for discount, a Markdown parser.
- earmark - Markdown parser for Elixir.
- Markdown - Implemented entirely as a NIF binding to the Hoedown library.
- Pandex - Lightweight Elixir wrapper for Pandoc. Converts Markdown, CommonMark, HTML, Latex, HTML, HTML5, opendocument, rtf, texttile, asciidoc to each other.
-
Miscellaneous
- notifier - A pluggable architecture for desktop notifications.
- address_us - Library for parsing US Addresses into their individual parts.
- AlloyCI - AlloyCI is a Continuous Integration, Deployment, and Delivery coordinator, written in Elixir, that takes advantage of the GitLab CI Runner, and its capabilities as executor, to prepare and run your pipelines.
- Apex - Awesome Print for Elixir.
- bupe - EPUB Generator and Parser.
- charm - Use ANSI terminal characters to write colors and cursor positions.
- Countries - Countries is a collection of all sorts of useful information for every country in the ISO 3166 standard.
- countriex - A pure elixir country data provider containing various information for every country in ISO 3166.
- cubdb - CubDB is an embedded key-value database, written in the Elixir language. It runs locally, it is schema-less, and backed by a single file.
- dye - A library for dyeing your terminal output.
- dynamic_compile - Compile and load Erlang modules from string input.
- egaugex - Client to fetch and parse realtime data from egauge devices.
- epub_cover_extractor - Extract cover from EPUB files.
- erlang_term - Provide the in-memory size of Erlang terms, ignoring where these are stored.
- ex2ms - Translates Elixir functions to match specifications for use with `ets`.
- ex_azure_speech - An Elixir SDK implementation for the Microsoft Azure Speech Service.
- ex_rated - Simple and flexible rate-limiting for API's or anything.
- exfcm - Simple wrapper for posting Firebase Cloud Messages.
- exisbn - ISBN validation and formatting library.
- exldap - A module for working with LDAP from Elixir.
- exlibris - A collection of random library functions.
- expool - A small process pooling library for parallel tasks in Elixir.
- exprint - A printf / sprintf library for Elixir, works as a wrapper for :io.format.
- expyplot - Elixir interface for Plotting/Graphing library using matplotlib.pyplot.
- exquisite - LINQ-like match_spec generation for Elixir.
- exsync - Yet another Elixir reloader.
- funnel - Streaming Elixir API built upon ElasticSearch's percolation.
- gen_task - Generic Task behavior that helps to encapsulate worker errors and recover from them in classic GenStage's.
- gimei_ex - Elixir port of gimei library.
- growl - Simple wrapper for growl, the notification system for OSX.
- hammer - A rate-limiter with pluggable storage backends, including Redis.
- html_entities - Elixir module for decoding HTML entities in a string.
- huex - Elixir client for Philips Hue connected light bulbs.
- indicado - Technical indicator library for Elixir with no dependencies.
- japan_municipality_key - Elixir Library for Japan municipality key converting.
- Jisho-Elixir - An API wrapper for Jisho.org, an online Japanese dictionary. Allows users to search by word, symbol, and or tags (refer to docs).
- keys1value - Erlang set associative map for key lists.
- licensir - A mix task that lists the license(s) of all installed packages in your project.
- mixgraph - An interactive dependency plotter for your Hex Package.
- mixstar - MixStar starred GitHub repository that depends on your project.
- netrc - Reads netrc files implemented in Elixir.
- onetime - An onetime key-value store for Elixir.
- pact - Better dependency injection in Elixir for cleaner code and testing.
- passbook - Elixir library to create Apple Wallet (.pkpass) files.
- phone - A parser to get useful info from telephone numbers.
- porcelain - Porcelain implements a saner approach to launching and communicating with external OS processes from Elixir.
- presentex - Elixir to HTML/JavaScript based presentation framework.
- quarantine - Quarantine is a tiny OTP application for feature toggles.
- ratekeeper - Rate limiter and rate-limited actions scheduler.
- ratx - Rate limiter and overload protection for erlang application.
- spawndir - Spawns processes from the file system.
- spotify_ex - An Elixir wrapper for the Spotify Web API.
- std_json_io - Application for managing and communicating with IO servers via JSON.
- url_unroller - Simple URL unroller (un-shortener) in Elixir.
- vessel - Elixir MapReduce interfaces with Hadoop Streaming integration.
- weighted_random - Weighted random picking.
- AtomVM - AtomVM allows to run Elixir/Erlang code on embedded devices such as ESP32 and STM32 microcontrollers.
- codec-beam - Generate Erlang VM byte code from Haskell.
- ecto_autoslug_field - Automatically creates slugs for your Ecto models.
- elixir-browser - Browser detection for Elixir.
- ex_phone_number - Format, normalize, and validate phone numbers.
- reprise - Simplified module reloader for Elixir.
-
Native Implemented Functions
-
Natural Language Processing (NLP)
- gibran - Gibran is an Elixir port of [WordsCounted](https://github.com/abitdodgy/words_counted), a natural language processor that extracts useful statistics from text.
- Paasaa - Natural language detection for Elixir.
- Petrovich - Elixir library to inflect Russian first, last, and middle names.
- Woolly - Woolly is an ambitious Text Mining and Natural Language Processing API for Elixir.
- Tongue - Elixir port of Nakatani Shuyo's natural language detector.
-
Networking
- asn - Can be used to map from IP to AS to ASN.
- chatter - Secure message broadcasting based on a mixture of UDP multicast and TCP.
- download - Download files from the internet easily.
- eio - Elixir server of engine.io.
- ExPcap - PCAP parser written in Elixir.
- Firezone - Open-source VPN server and egress firewall for Linux built on WireGuard. Firezone is easy to set up (all dependencies are bundled thanks to Chef Omnibus), secure, performant, and self hostable.
- FlyingDdns - A dyndns server written in elixir.
- hades - A wrapper for NMAP written in Elixir.
- mac - Can be used to find a vendor of a MAC given in hexadecimal string (according to IEEE).
- pool - Socket acceptor pool for Elixir.
- reagent - reagent is a socket acceptor pool for Elixir.
- sise - A simple to use SSDP client.
- sockerl - Sockerl is an advanced Erlang/Elixir socket library for TCP protocols and provides fast, useful and easy-to-use API for implementing servers, clients and client connection pools.
- socket - Socket wrapping for Elixir.
- sshex - Simple SSH helpers for Elixir.
- sshkit - An Elixir toolkit for performing tasks on one or more servers, built on top of Erlang’s SSH application.
- torex - Simple Tor connection library.
- tunnerl - SOCKS4 and SOCKS5 proxy server.
- wifi - Various utility functions for working with the local Wifi network in Elixir.
- wpa_supplicant - Elixir interface to the wpa_supplicant.
-
Newsletters
- Elixir Radar - The "official" Elixir newsletter, published weekly via email by Plataformatec.
- ElixirWeekly - The Elixir community newsletter, covering stuff you easily miss, shared on [ElixirStatus](http://elixirstatus.com) and the web.
- Elixir Merge - A daily newsletter which delivers two curated updates (articles, tutorials, videos, podcasts) in each edition in quick-read format.
- Elixir Digest - A weekly newsletter with the latest articles on Elixir and Phoenix.
- Elixir Radar - The "official" Elixir newsletter, published weekly via email by Plataformatec.
- ElixirWeekly - The Elixir community newsletter, covering stuff you easily miss, shared on [ElixirStatus](http://elixirstatus.com) and the web.
-
Office
-
ORM and Datamapping
- ecto_factory - Easily generate structs based on your ecto schemas.
- amnesia - Mnesia wrapper for Elixir.
- arbor - Ecto adjacency list and tree traversal.
- arc_ecto - Arc.Ecto provides an integration with Arc and Ecto.
- atlas - Object Relational Mapper for Elixir.
- barrel_ex - [Barrel-db](https://barrel-db.org/) distributed document-oriented database REST client in Elixir.
- Bolt.Sips - Neo4j driver for Elixir using the Bolt protocol.
- boltun - Transforms notifications from the Postgres LISTEN/NOTIFY mechanism into callback execution.
- caylir - Cayley driver for Elixir.
- comeonin_ecto_password - Ecto custom type for storing encrypted password using Comeonin.
- craterl - Erlang client for crate.
- database_url - Parse database URL and return keyword list for use with Ecto.
- datomex - Elixir driver for the Datomic REST API.
- ddb_client - DalmatinerDB client.
- defql - Create elixir functions with SQL as a body.
- dexts - Disk Elixir Terms Storage, dest wrapper.
- diver - A HBase driver for Erlang/Elixir using Jinterface and the Asynchbase Java client to query the database.
- dproto - Protocols for DalmatinerDB.
- dqe - DalmatinerDB query engine.
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