Giter Club home page Giter Club logo

awesome-elixir's Introduction

Awesome Elixir Build Status

A curated list of amazingly awesome Elixir libraries, resources, and shiny things inspired by awesome-php.

Actors

Libraries and tools for working with actors and such.

  • exactor - Helpers for easier implementation of actors in Elixir.
  • exos - A Port Wrapper which forwards cast and call to a linked Port.
  • pool_ring - Create a pool based on a hash ring.
  • poolboy - A hunky Erlang worker pool factory.
  • pooler - An OTP Process Pool Application.
  • sbroker - Sojourn-time based active queue management library.
  • workex - Backpressure and flow control in EVM processes.

Algorithms and Data structures

Libraries and implementations of algorithms and data structures.

  • array - An Elixir wrapper library for Erlang's array.
  • bloomex - A pure Elixir implementation of Scalable Bloom Filters.
  • cuckoo - A pure Elixir implementation of Cuckoo Filters.
  • datastructures - A collection of protocols, implementations and wrappers to work with data structures.
  • dlist - Deque implementations in Elixir.
  • eastar - A* graph pathfinding in pure Elixir.
  • exfsm - Simple elixir library to define a static FSM.
  • exkad - A kademlia implementation in Elixir.
  • ezcryptex - Thin layer on top of Cryptex.
  • fnv - Pure Elixir implementation of Fowler–Noll–Vo hash functions.
  • fsm - Finite state machine as a functional data structure.
  • graphmath - An Elixir library for performing 2D and 3D mathematics.
  • hash_ring_ex - A consistent hash-ring implemention for Elixir.
  • isaac - Isaac is an elixir module for ISAAC: a fast cryptographic random number generator.
  • key2value - Erlang 2-way Set Associative Map.
  • lfsr - Elixir implementation of a binary Galois Linear Feedback Shift Register.
  • loom - A CRDT library with δ-CRDT support.
  • memoize - A memoization macro (defmemo) for elixir using a genserver backing store.
  • murmur - A pure Elixir implementation of the non-cryptographic hash Murmur3.
  • remodel - An Elixir presenter package used to transform map structures.
  • rendezvous - Implementation of the Rendezvous or Highest Random Weight (HRW) hashing algorithm in Elixir.
  • sfmt - SIMD-oriented Fast Mersenne Twister (SFMT) for Erlang.
  • structurez - A playground for data structures in Elixir.
  • supermemo - An Elixir implementation of the Supermemo 2 algorithm.
  • the_fuzz - Fuzzy string-matching algorithm implementations.
  • tinymt - Tiny Mersenne Twister (TinyMT) for Erlang.
  • trie - Erlang Trie Implementation.
  • zipper_tree - Variadic aritity tree with a zipper for Elixir.

Applications

Standalone applications.

  • bpe - Business Process Engine in Erlang.
  • dragonfly_server - Elixir app to serve Dragonfly images.
  • hyperledger - Reference server for the Hyperledger protocol.
  • majremind - A self-maintained database of your updated server which tells you which one needs to be updated. .
  • n2o - WebSocket Application Server.
  • poxa - Open Pusher implementation, compatible with Pusher libraries.
  • tty2048 - Terminal-based 2048 game written in Elixir.

Audio and Sounds

Libraries working with sounds and tones.

Authentication

Libraries for implementing authentications schemes.

  • apache_passwd_md5 - Apache/APR Style Password Hashing.
  • aws_auth - AWS Signature Version 4 Signing Library for Elixir.
  • github_oauth - A simple github oauth library.
  • htpasswd - Apache httpasswd file reader/writer in Elixir.
  • mojoauth - MojoAuth implementation in Elixir.
  • oauth2 - An OAuth 2.0 client library for Elixir.
  • oauth2cli - Simple OAuth2 client written for Elixir.
  • oauth2ex - Another OAuth 2.0 client library for Elixir.
  • oauther - An OAuth 1.0 implementation for Elixir.
  • xoauth2 - A simple XOAuth2 module for Elixir.

Authorization

Libraries for implementing Authorization handling.

  • canary - An authorization library for Elixir applications that restricts what resources the current user is allowed to access.

Bittorrent

Sharing is caring with Elixir

  • tracker_request - Dealing with bittorrent tracker requests and responses.
  • wire - Encode and decode bittorrent peer wire protocol messages with Elixir.

Build Tools

Project build and automation tools.

  • active - Recompilation and Reloading on FileSystem changes.
  • coffee_rotor - Rotor plugin to compile CoffeeScript files.
  • dismake - Mix compiler running make.
  • edeliver - Deployment for Elixir and Erlang.
  • etude - Parallel computation coordination compiler for Erlang/Elixir.
  • ExMake - A modern, scriptable, dependency-based build tool loosely based on Make principles.
  • mad - Small and Fast Rebar Replacement.
  • reaxt - React template into your Elixir application for server rendering.
  • reltool_util - Erlang reltool utility functionality application.
  • remix - Automatic recompilation of Mix code on file change.
  • rotor - Super-simple build system for Elixir.
  • sass_elixir - A sass plugin for Elixir projects.

Caching

Libraries for caching data.

  • con_cache - ConCache is an ETS based key/value storage.

Cloud Infrastructure and Management

Applications, tools and libraries for your own cloud service.

  • Cloudi - CloudI is for back-end server processing tasks that require soft-realtime transaction.
  • discovery - An OTP application for auto-discovering services with Consul.
  • erlcloud - Cloud Computing library for Erlang (Amazon EC2, S3, SQS, SimpleDB, Mechanical Turk, ELB).
  • ex_aws - AWS client. Currently supports DynamoDB and Kinesis.
  • fleet_api - A simple wrapper for the Fleet (CoreOS) API. Can be used with etcd tokens or via direct node URLs.
  • nodefinder - Strategies for automatic node discovery in Erlang.
  • sidejob - Parallel worker and capacity limiting library for Erlang.
  • sidetask - SideTask is an alternative to Task.Supervisor using Basho's sidejob library with parallelism and capacity limiting.

Code Analysis

Libraries and tools for code base analysis, parsing, and manipulation.

  • coverex - Coverage Reports for Elixir.
  • dialyxir - Mix tasks to simplify use of Dialyzer in Elixir projects.
  • excoveralls - Coverage report tool for Elixir with coveralls.io integration.
  • exprof - A simple code profiler for Elixir, using eprof.

Command Line Applications

Anything helpfull for building CLI applications.

  • anubis - Command-Line application framework for Elixir.

Configuration

Libraries and tools working with configurations

  • configparser_ex - A simple Elixir parser for the same kind of files that Python's configparser library handles.
  • conform - Easy release configuration for Elixir apps.
  • dotenv - A port of dotenv to Elixir.
  • ex_conf - Simple Elixir Configuration Management.
  • figaro - Simple Elixir project configuration.

Cryptography

Encrypting and decrypting data

  • cipher - Elixir crypto library to encrypt/decrypt arbitrary binaries.
  • comeonin - Password authorization (bcrypt) library for Elixir.
  • elixir_tea - TEA implementation in Elixir.
  • exgpg - Use gpg from Elixir.
  • pot - Erlang library for generating one time passwords compatible with Google Authenticator.
  • rsa - public_key cryptography wrapper for Elixir.
  • tea_crypto - Tiny Encryption Algorithm implementation.

CSV

Libraries and implementations working with CSV.

  • cesso - CSV handling library for Elixir.
  • csv - CSV Decoding and Encoding for Elixir.
  • csvlixir - A CSV reading/writing application for Elixir.
  • ex_csv - CSV for Elixir.

Date and Time

Libraries for working with dates and times.

  • block_timer - Macros to use :timer.apply_after and :timer.apply_interval with a block.
  • chronos - An Elixir date/time library.
  • good_times - Expressive and easy to use datetime functions.
  • kalends - Kalends is a date/time library in pure Elixir, with up-to-date timezone support using the Olson database.
  • milliseconds - Simple library to work with milliseconds in Elixir.
  • moment - Parse, validate, manipulate, and display dates in Elixir.
  • repeatex - Natural language parsing for repeating dates.
  • timex - Easy to use Date and Time modules for Elixir.
  • timex_interval - A date/time interval library for Elixir projects, based on Timex.
  • tzdata - The timezone database in Elixir.

Debugging

Libraries and tools for debugging code and applications.

  • benchfella - Benchmarking tool for Elixir.
  • bmark - A benchmarking tool for Elixir.
  • booter - Boot an Elixir application, step by step.
  • dbg - Distributed tracing for Elixir.
  • eflame - Flame Graph profiler for Erlang.
  • eh - A tool to look up Elixir documentation from the command line.
  • eper - Erlang performance and debugging tools.
  • exometer - Basic measurement objects and probe behavior in Erlang.
  • exrun - Distributed tracing for Elixir with rate limiting and simple macro-based interface.
  • quaff - The Debug module provides a simple helper interface for running Elixir code in the erlang graphical debugger.

Documentation

Libraries and tools for creating documentation.

  • ex_doc - ExDoc is a tool to generate documentation for your Elixir projects.
  • ex_doc_dash - Formatter for ExDoc to generate docset documentation for use in Dash.app.
  • hexdocset - Convert hex doc to Dash.app's docset format.
  • inch-ci - Documentation badges for Ruby & Elixir.

ECMAScript

Implementations working with JavaScript, JScript or ActionScript.

  • estree - A implementation of the SpiderMonkey Parser API in Elixir.

Email

Working with Email and stuff.

  • gen_smtp - A generic Erlang SMTP server and client that can be extended via callback modules.
  • mailer - A simple SMTP mailer.
  • mailibex - Library containing Email-related implementations in Elixir: dkim, spf, dmark, mimemail, smtp.
  • mailman - Mailman provides a clean way of defining mailers in your Elixir applications.

Eventhandling

Sending/Emitting and receiving/handling Events in Elixir.

  • goldrush - Small, Fast event processing and monitoring for Erlang/OTP applications.
  • reaxive - Reaxive is a reactive event handling library, inspired by Elm and Reactive Extensions.

Examples and funny stuff

Example code and stuff tu funny or curious not to mention.

  • dice - Roll the dice, in Elixir.
  • dicks - An Elixir client for the Dick As A Service platform.
  • harakiri - Help applications kill themselves.
  • koans - Learn Elixir by using elixir-koans.
  • phoenix-flux-react - An experiment with Phoenix Channels, GenEvents, React and Flux.
  • portal - A shooting fault-tolerant doors for distributed portal data-transfer application in Elixir.
  • rollex - Elixir library using a Pratt Parser algorithm to calculate dice rolls.
  • rubix - A very simple (and barely-functioning) Ruby runner for Elixir.
  • vulvapi - A JSON API to fetch vulvas.
  • vulvex - An Elixir client for the VulvAPI.

Feeds

Libraries working with feeds like RSS or ATOM.

  • feeder - Parse RSS and Atom feeds.
  • feeder_ex - RSS feed parser. Simple wrapper for feeder.

Files and Directories

Libraries and implementations for working with files and directories.

  • cassius - Monitor Linux file system events.
  • dir_walker - DirWalker lazily traverses one or more directory trees, depth first, returning successive file names.
  • ex_minimatch - Globbing paths without walking the tree!.
  • exfswatch - Elixir version of fswatch base on fswatch.
  • fs - Erlang FileSystem Listener.
  • librex - Elixir library to convert office documents to other formats using LibreOffice.
  • Radpath - Path library for Elixir, inspired by Python's Enhpath.
  • zarex - Filename sanitization for Elixir.

Formulars

Handling web formulars and similar stuff.

  • forms - Erlang Business Documents Generator.

Framework Components

Standalone component from web development frameworks.

  • addict - User authentication for Phoenix Framework.
  • ashes - A code generation tool for the Phoenix web framework.
  • blaguth - Basic Access Authentication in Plug applications.
  • cors_plug - An Elixir plug that adds CORS headers to requests and responds to preflight requests (OPTIONS).
  • corsica - Elixir library for dealing with CORS requests.
  • crudex - CRUD utilities for Phoenix and Ecto.
  • exrecaptcha - Simple reCaptcha display/verify code for Elixir applications.
  • flinch - Resource layer for Phoenix and Ecto projects for auto-generated RESTful CRUD APIs.
  • http_router - HTTP Router with various macros to assist in developing your application and organizing your code.
  • phoenix_ecto - Phoenix and Ecto integration.
  • phoenix_generator - Generate boilerplate for Phoenix applications.
  • phoenix_linguist - A project that integrates Phoenix with Linguist, providing a plug and view helpers.
  • phoenix_live_reload - Provides live-reload functionality for Phoenix.
  • phoenix_pubsub_postgres - Postgresql PubSub adapter for Phoenix apps.
  • phoenix_pubsub_rabbitmq - RabbitMQ adapter for Phoenix's PubSub layer.
  • phoenix_token_auth - Token authentication solution for Phoenix. Useful for APIs or single page apps.
  • plug - A specification and conveniences for composable modules in between web applications.
  • plug_accesslog - Plug for writing access logs.
  • plug_auth - Collection of authentication-related plugs.
  • plug_cors - CORS Plug.
  • plug_heartbeat - A plug for responding to heartbeat requests.
  • plug_jwt - Plug for JWT 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_session_memcached - A very simple memcached session store for Elixir's plug.
  • plug_statsd - A plug for automatically sending timing and count metrics to statsd.
  • plugs - Collection of Plug middleware for web applications.
  • plugsnag - Bugsnag notifier for Elixir's plug.
  • scrivener - Paginate your Ecto queries.
  • trailing_format_plug - An Elixir plug to support legacy APIs that use a rails-like trailing format.
  • webassembly - Web DSL for Elixir.

Frameworks

Web development frameworks.

  • clint - An Elixir web micro-framework, inspired by Sinatra, built on top of Plug and Cowboy.
  • exelli - An Elli Elixir wrapper with some sugar sytnax goodies.
  • 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.
  • relax - Simple Elixir implementation of a jsonapi.org server.
  • rest - Micro-REST framework with typed JSON.
  • sugar - Modular web framework for Elixir.

Geolocation

Libraries for geocoding addresses and working with latitudes and longitudes.

  • geo - A collection of GIS functions for Elixir.
  • geolix - MaxMind GeoIP2 database reader/decoder.

Hardware

Hardware related things like I/O interfaces and such.

  • elixir_ale - Elixir access to hardware I/O interfaces such as GPIO, I2C, and SPI.

HTTP

Libraries for working with HTTP and scraping websites.

  • bolt - Simple and fast http proxy.
  • cauldron - An HTTP/SPDY server as a library.
  • exvcr - HTTP request/response recording library for Elixir, inspired by VCR.
  • http - HTTP server for Elixir.
  • httpoison - Yet Another HTTP client for Elixir powered by hackney.
  • httpotion - Fancy HTTP client for Elixir, based on ibrowse.
  • httprot - HTTP client library.
  • lhttpc - A lightweight HTTP/1.1 client implemented in Erlang.
  • mochiweb - MochiWeb is an Erlang library for building lightweight HTTP servers.
  • tesla - HTTP client library, with support for middleware and multiple adapters.

Images

Libraries for working with and manipulating images.

  • bump - A BMP file writer in pure Elixir.
  • chunky_svg - A library for drawing things with SVG.
  • exexif - Pure Elixir library to extract TIFF and EFIX metadata from jpeg files.
  • imagineer - Image parsing in Elixir.
  • mogrify - An Elixir wrapper for ImageMagick command line.

JSON

Libraries and implementations working with JSON.

  • exjson - JSON parser and genarator in Elixir.
  • exjsx - JSON for Elixir, based on jsx.
  • jazz - Yet another library to handle JSON in Elixir.
  • joken - Encodes and decodes JSON Web Tokens.
  • jsex - json for 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.
  • jsx - An Erlang application for consuming, producing, and manipulating json.
  • jsxn - jsx but with maps.
  • poison - Poison is a new JSON library for Elixir focusing on wicked-fast speed without sacrificing simplicity, completeness, or correctness.
  • world_json - topojson country and state/province collections for elixir/erlang.

Lexical analysis

All about lexical analyser, lexer, scanner, tokenizer or compiler.

  • ex_abnf - Parser for ABNF Grammars in Elixir.
  • lux_luthor - LexLuthor is a Lexer in Elixir which uses macros to generate a reusable lexers.

Logging

Logging infos and messages.

  • lager - A logging framework for Erlang/OTP by basho.com.
  • lager_logger - A lager backend that forwards all log messages to Elixir's Logger.
  • rogger - Elixir logger to publish log messages in RabbitMQ.
  • syslog - Erlang port driver for interacting with syslog via syslog(3).

Macros

Macros for faster and easier development. Sugar for your code.

  • guardsafe - Macros expanding into code that can be safely used in guard clauses.
  • pattern_tap - Macro for tapping into a pattern match while using the pipe operator.
  • pipes - Macros for more flexible composition with the Elixir Pipe operator.
  • rulex - Simple rule handler using Elixir pattern matching.

Markdown

Libraries and tools working with Markdown and such.

  • 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.

Miscellaneous

Useful libraries or tools that don't fit in the categories above.

  • address_us - Library for parsing US Addresses into their individual parts.
  • Apex - Awesome Print for Elixir.
  • 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.
  • dye - A library for dyeing your terminal output.
  • dynamic_compile - Compile and load Erlang modules from string input.
  • 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_rated - Simple and flexible rate-limiting for API's or anything.
  • exlibris - A collection of random library functions.
  • exprint - A printf / sprintf library for Elixir, works as a wrapper for :io.format.
  • exquisite - LINQ-like match_spec generation for Elixir.
  • exsync - Yet another Elixir reloader.
  • funnel - Streaming Elixir API built upon ElasticSearch's percolation.
  • growl - Simple wrapper for growl, the notification system for OSX.
  • huex - Elixir client for Philips Hue connected light bulbs.
  • keys1value - Erlang set associative map for key lists.
  • mdef - Easily define multiple function heads in Elixir.
  • mixstar - MixStar starred GitHub repository that depends on your project.
  • netrc - Reads netrc files implemented in Elixir.
  • pact - Better dependency injection in Elixir for cleaner code and testing.
  • porcelain - Porcelain implements a saner approach to launching and communicating with external OS processes from Elixir.
  • radpath - A path library for Elixir inspired by Python path libraries.
  • reprise - Simplified module reloader for Elixir.
  • spawndir - Spawns processes from the file system.
  • url_unroller - Simple URL unroller (un-shortener) in Elixir.

Networking

Libraries and tools for using network related stuff.

  • chatty - A basic IRC client that is most useful for writing a bot.
  • eio - Elixir server of engine.io.
  • ejabberd - Robust, ubiquitous and massively scalable Jabber/XMPP Instant Messaging platform.
  • ExIrc - IRC client adapter for Elixir projects.
  • ExPcap - PCAP parser written in Elixir.
  • hedwig - XMPP Client/Bot Framework for Elixir.
  • pool - Socket acceptor pool for Elixir.
  • reagent - reagent is a socket acceptor pool for Elixir.
  • socket - Socket wrapping for Elixir.
  • sshex - Simple SSH helpers for Elixir.
  • wpa_supplicant - Elixir interface to the wpa_supplicant.
  • yodel - Extensible Messaging & Presence Protocol (XMPP) client in Elixir.

ORM and Datamapping

Libraries that implement object-relational mapping or datamapping techniques.

  • amnesia - Mnesia wrapper for Elixir.
  • atlas - Object Relational Mapper for Elixir.
  • boltun - Transforms notifications from the Postgres LISTEN/NOTIFY mechanism into callback execution.
  • craterl - Erlang client for crate.
  • datomex - Elixir driver for the Datomic REST API.
  • 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.
  • ecto - A database wrapper and language integrated query for Elixir.
  • ecto_hstore - Ecto.Hstore adds Postgres Hstore compatibility to Ecto.
  • ecto_lazy_float - Ecto.LazyFloat - An Ecto.Float that accepts binary and integers.
  • ecto_migrate - Ecto auto migration library. It allows to generate and run migrations for initial and update migrations.
  • ecto_ordered - Ecto extension for ordered models.
  • eredis - Erlang Redis client.
  • esqlite - Erlang NIF for sqlite.
  • ex_bitcask - Elixir wrapper of Basho's Bitcask Key/Value store.
  • exleveldb - Elixir wrapper around Basho's eleveldb module for LevelDB.
  • exredis - Redis client for Elixir.
  • exrethinkdb - Rethinkdb client in pure Elixir using JSON protocol.
  • exts - Elixir Terms Storage, ets wrapper.
  • hstore - Hstore support for Postgrex.
  • instream - InfluxDB driver for Elixir.
  • kalecto - Glue between Kalends and Ecto for saving dates, times and datetimes.
  • kst - Erlang Abstract Term Database.
  • mariaex - MariaDB/MySQL driver for Elixir.
  • postgrex - PostgreSQL driver for Elixir.
  • redo - Heroku's pipelining redis client for erlang.
  • riak - A Riak client written in Elixir.
  • 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.
  • tirexs - An Elixir flavored DSL for building JSON based requests to Elasticsearch engine.
  • yar - Yet another Redis client for Elixir.

OTP

Libraries for working with OTP related things.

  • core - Library for selective receive OTP processes.
  • 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

Libraries and tools for package and dependency management.

  • Hex - A package manager for the Erlang ecosystem.

PDF

Libraries and software for working with PDF files.

  • gutenex - Native PDF generation for Elixir.

Protocols

Special protocol and format libraries.

  • elixir_radius - RADIUS Protocol on Elixir.
  • exprotobuf - Protocol Buffers in Elixir, made easy.
  • message_pack - MessagePack Implementation for Elixir.
  • msgpax - MessagePack (de)serializer implementation for Elixir.

Queue

Libraries for working with event and task queues.

  • 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.
  • dbus - A dumb message bus for sharing data between microservices decoupled using Redis.
  • elixir_talk - An Elixir client for beanstalkd.
  • exq - Job processing library for Elixir - compatible with Resque/Sidekiq.
  • exrabbit - RabbitMQ bindings and DSL for Elixir.
  • heapq - A Heap-based Priority Queue Implementation in Elixir.
  • hulaaki - An MQTT 3.1.1 client library written in Elixir.
  • kafka_ex - Kafka client library for Elixir.
  • mqs - RabbitMQ client library, routing keys, RPC over MQ and other stuff.
  • pqueue - Erlang Priority Queue Implementation.
  • work_queue - Simple implementation of the hungry-consumer model in Elixir.

Release Management

Libraries and tools for release management.

  • bottler - Bottler is a collection of tools that aims to help you generate releases, ship them to your servers, install them there, and get them live on production.
  • changex - Automated changelog generation from GIT logs.
  • exrm - Automatically generate a release for your Elixir project.
  • exrm_heroku - Publish your Elixir releases to Heroku with ease.
  • exrm_rpm - Create a RPM for your Elixir release with ease.
  • heroku-buildpack-elixir - Heroku buildpack to deploy Elixir apps to Heroku.

REST and API

Libraries and web tools for developing REST-ful APIs.

  • detergentex - Elixir binding to Detergent erlang library used to call WSDL/SOAP Services.
  • maru - Elixir copy of grape for creating REST-like APIs.
  • signaturex - Simple key/secret based authentication for APIs.
  • urna - Urna is a simple DSL around cauldron to implement REST services.

Security

Libraries and tools regarding security.

  • safetybox - Security oriented helper functions for Elixir.
  • ssl_verify_hostname - Erlang library for certificate hostname validation based on RFC 6125.

Static Page Generation

Tools and libraries for generating static websites and content.

  • coil - Minimalistic static content engine.
  • obelisk - Static blog and website generator.

Statistics

Libraries around the topic statistics.

Templating

Libraries parsing and helping with templates

  • eml - Library for writing and manipulating (HTML) markup in Elixir.
  • mustache - Mustache templates for Elixir.
  • mustachex - Mustache for Elixir - Logic-less templates.
  • templates - Helper library for adding templating to web applications.

Testing

Libraries for testing codebases and generating test data.

  • amrita - A polite, well mannered and thoroughly upstanding testing framework for Elixir.
  • blacksmith - Data generation framework for Elixir.
  • blitzy - A simple HTTP load tester in Elixir.
  • cobertura_cover - Writes a coverage.xml from mix test --cover file compatible with Jenkins' Cobertura plugin.
  • ecto_it - Ecto plugin with default configuration for repos for testing different ecto plugins with databases.
  • espec - BDD test framework for Elixir inspired by RSpec.
  • ex_spec - BDD-like syntax for ExUnit.
  • excheck - Property-based testing library for Elixir (QuickCheck style).
  • factory_girl_elixir - Minimal implementation of Ruby's factory_girl in Elixir.
  • faker - Faker is a pure Elixir library for generating fake data.
  • hound - Elixir library for writing integration tests and browser automation.
  • katt - KATT (Klarna API Testing Tool) is an HTTP-based API testing tool for Erlang.
  • kovacs - A simple ExUnit test runner.
  • meck - A mocking library for Erlang.
  • mix_erlang_tasks - Common tasks for Erlang projects that use Mix.
  • mix_eunit - A Mix task to execute eunit tests.
  • mixunit - An EUnit task for Mix based projects.
  • mock - Mocking library for the Elixir language.
  • pavlov - BDD framework for your Elixir projects.
  • plug_test_helpers - A simple testing DSL for Plugs.
  • ponos - Ponos is an Erlang application that exposes a flexible load generator API.
  • shouldi - Elixir testing libraries with nested contexts, superior readability, and ease of use.
  • white_bread - Story based BDD in Elixir using the gherkin syntax.

Text and Numbers

Libraries for parsing and manipulating text and numbers.

  • base58 - Base58 encoding/decoding for Elixir.
  • base58check - Base58Check encoding/decoding for Bitcoin.
  • base62 - Base62 encoder/decoder in pure Elixir.
  • bencoder - bencode in Elixir.
  • brcpfcnpj - Number format and Validate, to the documents brazilians (CPF/CNPJ).
  • calliope - An Elixir HAML parser.
  • chinese_translation - Translate between traditional chinese and simplified chinese based on wikipedia data, and translate chinese words/characters to pinyin (or slug with or without tone).
  • cldr - cldr is a library to use information from CLDR data.
  • colorful - Elixir macros to decorate characters on CUI.
  • colors - Colors util written in Elixir.
  • convertat - An Elixir library for converting from and to arbitrary bases.
  • curtail - HTML tag-safe string truncation.
  • custom_base - Allow you to make custom base conversion in Elixir.
  • decimal - Arbitrary precision decimal arithmetic for Elixir.
  • dicer - A dice roller expression evaluator.
  • elixilorem - Lorem Ipsum generator for Elixir.
  • elixir_bencode - Bencode implemented in Elixir.
  • erldn - EDN format parser for the Erlang platform.
  • event_source_encoder - Encode data into EventSource compliant data.
  • ex_brace_expansion - Brace expansion, as known from sh/bash, in Elixir.
  • ex_rfc3986 - RFC3986 URI/URL parser.
  • exmoji - Emoji encoding Swiss Army knife for Elixir/Erlang.
  • expletive - Profanity filter library for Elixir.
  • expr - An Elixir library for parsing and evaluating mathematical expressions.
  • faust - Markov Text Generator for Elixir.
  • hashids - Hashids lets you obfuscate numerical identifiers via reversible mapping.
  • hexate - Simple module for Hex encoding / decoding in Elixir.
  • inflex - An Inflector library for Elixir.
  • kitsune - An Elixir library for transforming the representation of data.
  • ltsvex - LTSV parser implementation in Elixir.
  • palette - A handy library for colouring strings in Elixir.
  • pinyin - Chinese Pinyin lib for Elixir.
  • porterstemmer - Porter Stemmer in Elixir.
  • pretty_hex - A binary hex dumping library in Elixir.
  • quickrand - Quick Random Number Generation.
  • ref_inspector - Referer parser library in Elixir. Fetching info from URLs.
  • secure_random - Convenience library for random base64 strings modeled after my love for Ruby's SecureRandom.
  • simetric - String similarity metrics for Elixir.
  • slugger - Slugger can generate slugs from given strings that can be used in URLs or file names.
  • tau - Provide the famous mathematical constant, tau, τ = 6.2831....
  • tomlex - A TOML parser for Elixir.
  • ua_inspector - User agent parser library like piwik/device-detector.
  • uuid - UUID generator and utilities for Elixir.
  • uuid_erl - Erlang Native UUID Generation.

Third Party APIs

Libraries for accessing third party APIs.

  • amazon_product_advertising_client - Amazon Product Advertising API client for Elixir.
  • balanced - Balanced API Client for Elixir.
  • bitpay - Elixir core library for connecting to bitpay.com.
  • cleverbot - Simple implementation of the Cleverbot API in Elixir.
  • commerce_billing - A payment-processing library for Elixir that supports multiple gateways (e.g. Bogus & Stripe).
  • currently - A tool to display cards currently assigns on Trello.
  • digoc - Digital Ocean API v2 Elixir Client.
  • dogstatsd - An Elixir client for DogStatsd.
  • dpd_client - An API client for the DPD service.
  • dropbox - Dropbox Core API client for Elixir.
  • edgarex - Elixir interface for fetching SEC filings from EDGAR.
  • everex - Evernote API client for Elixir.
  • everyoneapi - API Client for EveryoneAPI.com.
  • ex_omegle - A minimal Omegle chat client library for Elixir.
  • ex_statsd - A statsd client implementation for Elixir.
  • ex_twilio - Twilio API client for Elixir.
  • ex_twiml - Generate TwiML for your Twilio integration, right inside Elixir.
  • exgenius - Elixir library for the (undocumented) Rap Genius API.
  • exgravatar - An Elixir module for generating Gravatar URLs.
  • exgrid - interact with Sendgrid's API.
  • exjira - JIRA client library for Elixir.
  • exlingr - A Lingr client module.
  • extwitter - Twitter client library for Elixir.
  • exurban - Elixir wrapper for UrbanAirship API.
  • facebook - Facebook Graph API Wrapper written in Elixir.
  • fluent_client - Minimalistic fluentd client.
  • forcex - Elixir library for the Force.com REST API.
  • forecast_io - Simple wrapper for Forecast.IO API.
  • google_sheets - Elixir library for fetching and polling Google spreadsheet data in CSV format.
  • hexoku - Heroku API client and Heroku Mix tasks for Elixir projects.
  • instrumental - An Elixir client for Instrumental.
  • keenex - A Keen.io API Client.
  • link_shrinkex - Elixir library for creating short URLs using Google's URL Shortener API.
  • mailgun - Elixir Mailgun Client.
  • mandrill - A Mandrill wrapper for Elixir.
  • mixpanel - An Elixir client for the Mixpanel HTTP API.
  • mixpanel_data_client - Client for interacting with the Mixpanel Data Export API.
  • mmExchangeRate - A simple exchange rate checker and calculator based on Central Bank of Myanmar Api.
  • opbeat - Elixir client for Opbeat.
  • parse_client - Elixir client for the parse.com REST API.
  • parsex - ParsEx is an Elixir HTTP Client for communicating with Parse.com's Restful API.
  • pathway - An Erlang/Elixir client for the Trak.io REST API.
  • pocketex - Pocketex is an Elixir client for the Pocket read later service getpocket.com.
  • pusher - Elixir library to access the Pusher REST API.
  • qiita_ex - A Qiita API v2 Interface for Elixir.
  • qiniu - Qiniu SDK for Elixir.
  • reap - Reap is a simple Elixir library for working with the refheap API.
  • simplex - An Elixir library for interacting with the Amazon SimpleDB API.
  • slack - Slack real time messaging client in Elixir.
  • stripe - An Elixir Library wrapping Stripe's API.
  • tagplay - Elixir client for Tagplay API.
  • traitify_elixir - An Elixir client library for the Traitify Developer's API.

Translations and Internationalizations

Libraries providing translations or internationalizations.

  • linguist - Elixir Internationalization library.
  • parabaikElixirConverter - ParabaikElixirConverter is just a Elixir version of Parabaik converter. It can convert from Unicode to Zawgyi-One and Zawgyi-One to Unicode vice versa.

Utilities

*Utilities libraries. *

  • exjprop - Elixir library for reading Java properties files from various sources.

Validations

Libraries and implementations for validation of data.

  • uk_postcode - UK postcode parsing and validation library.
  • vex - An extensible data validation library for Elixir.

Version Control

Working with version control like git, mercury, subversion ...

  • gitex - Elixir implementation of the Git object storage, but with the goal to implement the same semantic with other storage and topics.

XML

Libraries and implementations working with XML.

  • exmerl - Elixir wrapper for xmerl.
  • exml - Most simple Elixir wrapper for xmerl xpath.
  • exquery - A library for parsing HTML and querying elements within.
  • floki - A simple HTML parser that enables searching using CSS like selectors.
  • quinn - XML parser for Elixir.
  • spill - Parse and reformat XML into spill structure.
  • xml_builder - Elixir library for generating xml.

YAML

Libraries and implementations working with YAML.

  • yamerl - YAML 1.2 parser in Erlang.

Resources

Various resources, such as books, websites and articles, for improving your Elixir development skills and knowledge.

Books

Fantastic books and e-books.

Editors

Editors and IDEs useable for Elixir/Erlang

  • Alchemist - Elixir Tooling Integration Into Emacs.
  • Atom - Elixir language support for Atom.
  • atom-iex - Run an IEx session in Atom.
  • intellij_elixir - Elixir helpers for intellj-elixir, the Elixir plugin for JetBrains IDEs.
  • Jetbrains - Elixir for IntelliJ IDEA, RubyMine, WebStorm, PhpStorm, PyCharm, AppCode, Android Studio, 0xDBE.
  • Notepad++ - Elixir syntax highlighting for Notepad++.
  • TextMate - Elixir syntax highlighting for TextMate.
  • vim-elixir - Vim configuration files for Elixir.

Other Awesome Lists

Other amazingly awesome lists can be found at jnv/lists or bayandin/awesome-awesomeness.

  • Awesome Erlang - A curated list of awesome Erlang libraries, resources and shiny things.
  • Erlang Bookmarks - A collection of links for Erlang developers.

Reading

Elixir-releated reading materials.

Screencasts

Cool video tutorials.

  • Elixir Sips - Tiny screencasts for learning Elixir.
  • Meet Elixir - Walk through some features and concepts of Elixir by José Valim.

Styleguides

Styleguides for ensuring consistency while coding.

Websites

Useful web and Elixir-related websites and newsletters.

Contributing

Please see CONTRIBUTING for details.

awesome-elixir's People

Contributors

h4cc avatar optikfluffel avatar kosmas avatar falood avatar benjamintanweihao avatar trenpixster avatar slogsdon avatar meadsteve avatar devl avatar drewolson avatar chatgris avatar tyrchen avatar sebastianszturo avatar ricn avatar liveforeverx avatar lexmag avatar defp avatar samplesampler avatar eksperimental avatar zatvobor avatar wkhere avatar lowks avatar l4u avatar josevalim avatar indiejames avatar grempe avatar gjaldon avatar bayendor avatar c-rack avatar rcdilorenzo avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.