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: 2 days ago
JSON representation
-
ORM and Datamapping
- ecto - A database wrapper and language integrated query for Elixir.
- ecto_anon - Simple way to handle data anonymization directly in your Ecto schemas.
- ecto_cassandra - Cassandra DB Adapter for Ecto.
- ecto_enum - Ecto extension to support enums in models.
- ecto_facade - Ecto facade that allows to separate writes and reads to different databases.
- ecto_fixtures - Fixtures for Elixir apps using Ecto.
- ecto_lazy_float - Ecto.LazyFloat - An Ecto.Float that accepts binary and integers.
- ecto_list - Simple ordered model management with Ecto.
- ecto_migrate - Ecto auto migration library. It allows to generate and run migrations for initial and update migrations.
- ecto_mnesia - Ecto adapter for Mnesia Erlang term database.
- ecto_ordered - Ecto extension for ordered models.
- ecto_paging - Cursor-based pagination for Ecto.
- ecto_psql_extras - Ecto PostgreSQL database performance insights.
- ecto_rut - Simple and Powerful Ecto Shortcuts to simplify and speed up development.
- ecto_shortcuts - Shortcuts for common operations in ecto.
- ecto_shortuuid - Ecto type which adds support for [ShortUUIDs](https://github.com/gpedic/ex_shortuuid).
- ecto_validation_case - Simplify your Ecto model validation tests. Loosely inspired by shoulda matchers, but simpler.
- ectophile - Ecto extension to instantly support file uploads in models.
- elastic - A thin-veneer over HTTPotion to help you talk to Elastic Search.
- elastix - A simple Elastic REST client written in Elixir.
- eredis - Erlang Redis client.
- erlastic_search - An Erlang app for communicating with Elastic Search's rest interface.
- esqlite - Erlang NIF for sqlite.
- eternal - Keep your ETS tables alive forever, safely and easily.
- ets_map - An Elixir package that provides a Map-like interface (Map/Access/Enumerable/Collectable) backed by an ETS table.
- ex_bitcask - Elixir wrapper of Basho's Bitcask Key/Value store.
- ex_sider - Elixir Map/List/Set interfaces for Redis data structures (uses Redix, but that is configurable).
- exleveldb - Elixir wrapper around Basho's eleveldb module for LevelDB.
- exnumerator - Elixir enumerable type definition in a simple way to be used with any database.
- exseed - An Elixir library that provides a simple DSL for seeding databases through Ecto.
- exsolr - A Solr wrapper written in Elixir.
- extreme - An Elixir library using [Eventstore](https://geteventstore.com) for persistence of events generated by aggregates (CQRS).
- exts - Elixir Terms Storage, ets wrapper.
- github_ecto - Ecto adapter for GitHub API.
- gremlex - Apache Tinkerpop Gremlin Elixir Client.
- inquisitor - Composable query builder for Ecto.
- isn - Ecto types for the postgreSQL isn extension.
- kalecto - Glue between Kalends and Ecto for saving dates, times and datetimes.
- kvs - Erlang Abstract Term Database.
- level - Level for Elixir implements various helper functions and data types for working with Googles Level data store.
- mariaex - MariaDB/MySQL driver for Elixir.
- memento - Simple Mnesia Interface in Elixir.
- moebius - A functional query tool for Elixir and PostgreSQL.
- mongo - MongoDB driver for Elixir.
- mongodb_driver - Alternative driver for MongoDB with support for recent versions of MongoDB and comprehensive feature list.
- mysql - MySQL/OTP – MySQL driver for Erlang/OTP.
- mysqlex - An Ecto-compatible wrapper around the mysql-otp library.
- neo4j_sips - Neo4j driver for Elixir.
- neo4j_sips_models - Minimalistic Model support for the Neo4j.Sips Elixir driver.
- panoramix - Apache Druid client for Elixir.
- paper_trail - Ecto plugin for tracking and recording all the changes in your database.
- postgrex - PostgreSQL driver for Elixir.
- ravix - RavenDB Driver for Elixir.
- ravix-ecto - RavenDB Ravix Driver adapter for Ecto.
- red - Persist relationships between objects in Redis, in a graph-like way.
- rediscl - A minimal redis client with connection pooling and pipe query builder.
- redix - Superfast, pipelined, resilient Redis driver for Elixir.
- redo - Heroku's pipelining redis client for erlang.
- rethinkdb - Rethinkdb client in pure Elixir using JSON protocol.
- riak - A Riak client written in Elixir.
- riak_ecto - Riak adapter for Ecto.
- shards - Transparent and out-of-box Sharding support for Erlang/Elixir ETS tables.
- sql_dust - Generate (complex) SQL queries using magical Elixir SQL dust.
- sqlite_ecto - SQLite3 adapter for Ecto.
- sqlitex - An Elixir wrapper around esqlite. Allows access to sqlite3 databases.
- ssdb_elixir - ssdb client for Elixir, with focus on performance.
- tds - MSSQL / TDS Database driver for Elixir.
- tds_ecto - MSSQL / TDS Adapter for Ecto.
- timex_ecto - An adapter for using Timex DateTimes with Ecto.
- tirexs - An Elixir flavored DSL for building JSON based requests to Elasticsearch engine.
- triplex - Database multitenancy with postgres schemas for Elixir applications.
- triton - Pure Elixir Cassandra ORM built on top of Xandra.
- udpflux - An opinionated InfluxDB UDP only client.
- walex - PostgreSQL Change Data Capture (CDC) events listener in Elixir.
- yar - Yet another Redis client for Elixir.
- ecto_watch - Allows you to easily get notifications about database changes directly from PostgreSQL.
- eredis - Erlang Redis client.
- libsqlex - Libsql driver for Elixir.
- couchdb_connector - A connector for CouchDB, the Erlang-based, JSON document database.
- ets_map - An Elixir package that provides a Map-like interface (Map/Access/Enumerable/Collectable) backed by an ETS table.
- mongodb - MongoDB driver for Elixir.
- mongodb_ecto - MongoDB adapter for Ecto.
- pillar - Clickhouse HTTP based client.
- ssdb_elixir - ssdb client for Elixir, with focus on performance.
- tds - MSSQL / TDS Database driver for Elixir.
- xandra - Cassandra driver built natively in Elixir and focused on speed, simplicity, and robustness.
- eventstore - A CQRS EventStore using Postgres for persistence, written in Elixir.
- exredis - Redis client for Elixir.
-
Other Awesome Lists
- Awesome Elixir by LibHunt - A curated list of awesome Elixir and Erlang packages and resources.
- Awesome Erlang - A curated list of awesome Erlang libraries, resources and shiny things.
- Curated Elixir Resources - A collection of top recommended Elixir resources.
- jnv/lists - awesomeness](https://github.com/bayandin/awesome-awesomeness#awesome-awesomeness).*
- Awesome Elixir and CQRS - A curated list of awesome Elixir and Command Query Responsibility Segregation (CQRS) and event sourcing resources.
- Awesome Elixir by LibHunt - A curated list of awesome Elixir and Erlang packages and resources.
- Erlang Bookmarks - A collection of links for Erlang developers.
-
OTP
- core - Library for selective receive OTP processes.
- erlexec - Execute and control OS processes from Erlang/OTP.
- immortal - Immortal is a small collection of helper modules intended to make it easier to build a fault-tolerant OTP application.
- libex_config - Helpers for accessing OTP application configuration.
-
Package Management
- Hex - A package manager for the Erlang ecosystem.
- rebar3_hex - Hex.pm plugin for rebar3.
- rebar3_hex - Hex.pm plugin for rebar3.
-
PDF
- chromic_pdf - A client for Chrome's DevTools API to generate PDFs (HTML to PDF).
- gutenex - Native PDF generation for Elixir.
- pdf2htmlex - Convert PDF docs to beautiful HTML files without losing text or format.
- pdf_generator - A simple wrapper for wkhtmltopdf or puppeteer (HTML to PDF) for use in Elixir projects.
- puppeteer_pdf - Another wrapper around puppeteer (HTML to PDF) for use in Elixir projects.
- gutenex - Native PDF generation for Elixir.
-
Podcasts
- Elixir Fountain - The Elixir Fountain podcast.
- Elixir Mix - The Elixir Mix podcast.
- Elixir Outlaws - The Elixir Outlaws podcast.
- Elixir Talk - The Elixir Talk podcast.
- Thinking Elixir - The Thinking Elixir podcast.
- Elixir Mix - The Elixir Mix podcast.
-
Protocols
- borsh - Elixir implementation of the [BORSH](https://borsh.io) binary serializer.
- elixir_radius - RADIUS Protocol on Elixir.
- ex_hl7 - Health Level 7 (HL7) is a protocol designed to model and transfer health-related data electronically.
- ex_marshal - Ruby Marshal format implemented in Elixir.
- exprotobuf - Protocol Buffers in Elixir, made easy.
- message_pack - MessagePack Implementation for Elixir.
- msgpax - MessagePack (de)serializer implementation for Elixir.
- protox - Elixir implementation for Protocol Buffers.
- riffed - Provides idiomatic Elixir bindings for Apache Thrift.
- Sippet - An Elixir library designed to be used as SIP protocol middleware.
- SMPPEX - SMPP 3.4 protocol and framework implementation in Elixir.
- grpc-elixir - The Elixir implementation of gRPC.
-
Queue
- stream_weaver - Library for working with streams.
- adap - Create a data stream across your information systems to query, augment and transform data according to Elixir matching rules.
- amqp - Simple Elixir wrapper for the Erlang RabbitMQ client, based on Langohr.
- broadway - Concurrent and multi-stage data ingestion and data processing with Elixir.
- conduit - A framework for working with message queues, with adapters for SQS and AMQP, and plugs for reusable messaging patterns.
- cspex - Simple, OTP compliant, Elixir implementation of CSP channels.
- dbus - A dumb message bus for sharing data between microservices decoupled using Redis.
- ecto_job - A transactional job queue built with Ecto, PostgreSQL and GenStage.
- elixir_nsq - NSQ client library for Elixir.
- elixir_talk - An Elixir client for beanstalkd.
- enm - enm is an Erlang port driver that wraps the nanomsg C library.
- exdisque - Elixir client for [Disque](https://github.com/antirez/disque), an in-memory, distributed job queue.
- exq - Job processing library for Elixir - compatible with Resque/Sidekiq.
- exrabbit - RabbitMQ bindings and DSL for Elixir.
- faktory_worker - An Elixir library for working with [Faktory](https://contribsys.com/faktory/), a polyglot job processing system made by the author of Sidekiq.
- flume - A blazing fast job processing system backed by GenStage & Redis.
- gen_rmq - Set of behaviours meant to be used to create RabbitMQ consumers and publishers.
- heapq - A Heap-based Priority Queue Implementation in Elixir.
- honeycomb - Another scheduling system, focusing on the collection of results for one-time tasks.
- honeydew - Honeydew is a worker pool library for Elixir.
- hulaaki - An MQTT 3.1.1 client library written in Elixir.
- kaffe - Kafka client library for Elixir.
- mqs - RabbitMQ client library, routing keys, RPC over MQ and other stuff.
- opq - A simple, in-memory queue with worker pooling and rate limiting in Elixir.
- pqueue - Erlang Priority Queue Implementation.
- que - Simple Background Job Processing with Mnesia.
- queuex - Priority Queue with multiple backends.
- RBMQ - Simple API for spawning RabbitMQ Producers and Consumers.
- task_bunny - background processing application written in Elixir and uses RabbitMQ as a messaging backend.
- toniq - Simple and reliable background job library for Elixir.
- verk - Verk is a job processing system backed by Redis. It uses the same job definition of Sidekiq/Resque.
- work_queue - Simple implementation of the hungry-consumer model in Elixir.
- oban - Robust asynchronous job processor powered by Elixir and modern PostgreSQL.
- adap - Create a data stream across your information systems to query, augment and transform data according to Elixir matching rules.
- mqs - RabbitMQ client library, routing keys, RPC over MQ and other stuff.
- Rihanna - High performance postgres-backed job queue for Elixir.
-
QUIC
- quicer - QUIC protocol erlang library.
-
Reading
- Discover Elixir & Phoenix - An online course that teaches both the Elixir language and the Phoenix framework.
- Elixir Cheat-Sheet - A Elixir cheat sheet, by Andy Hunt & Dave Thomas.
- Elixir School - Lessons about the Elixir programming language.
- Elixir vs Ruby | How Switching To Elixir Made Our Team Better - Long-form post that explains in detail when and why you should choose Elixir over Ruby.
- Elixir Cheat-Sheet - A Elixir cheat sheet, by Andy Hunt & Dave Thomas.
- Elixir Code Smells - A catalog of Elixir-specific code smells that can harm the quality of software developed using this language.
- Elixir Functional Programming - Material to introduce functional programming using the Elixir language.
- Elixir Refactorings - A catalog of refactoring strategies to promote the redesign and improve the quality of code developed with Elixir.
- Elixir School - Lessons about the Elixir programming language.
- Elixir Tab - Chrome Extension which helps you learn the Elixir core lib.
- Learn With Me: Elixir - A series where I learn Elixir and you can learn along with me.
- The Little Schemer in Elixir - Exercises and algorithms from the Little Schemer book, ported to Elixir.
- xElixir - Exercism Exercises in Elixir.
- Discover Elixir & Phoenix - An online course that teaches both the Elixir language and the Phoenix framework.
- Elixir vs Ruby | How Switching To Elixir Made Our Team Better - Long-form post that explains in detail when and why you should choose Elixir over Ruby.
-
Release Management
- changex - Automated changelog generation from GIT logs.
- distillery - A pure Elixir implementation of release packaging functionality for the Erlang VM.
- eliver - Interactive semantic versioning for Elixir packages.
- expublish - Automates semantic release versioning and best practices for elixir packages.
- exrm - Automatically generate a release for your Elixir project.
- exrm_deb - Create a deb for your Elixir release with ease.
- exrm_heroku - Publish your Elixir releases to Heroku with ease.
- exrm_rpm - Create a RPM for your Elixir release with ease.
- mix_docker - Put your Elixir app production release inside minimal docker image.
- relex - Erlang/Elixir Release Assembler.
- renew - Mix task to create mix projects that builds into Docker containers.
- versioce - An extensible version bumping and changelog generation for your mix project.
-
REST and API
- accent - Plug for handling the conversion of JSON API keys to different cases.
- detergent - An emulsifying Erlang SOAP library.
- detergentex - Elixir binding to Detergent erlang library used to call WSDL/SOAP Services.
- mazurka - Hypermedia API toolkit.
- plug_rest - REST behaviour and Plug router for hypermedia web applications.
- signaturex - Simple key/secret based authentication for APIs.
- SOAP client - Hex-documented SOAP client based on HTTPoison.
- urna - Urna is a simple DSL around cauldron to implement REST services.
- versionary - API versioning for Elixir Plug and Phoenix.
- accent - Plug for handling the conversion of JSON API keys to different cases.
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