Tag Archives: GIS

A curated list of amazingly awesome Elixir libraries, resources and shiny things.


tests Made entries in categories also sorted alphabetically. 17 days ago
.gitignore Added script for checking formatting #41 a month ago
.travis.yml Fixing travis. a month ago
CONTRIBUTING.md Made entries in categories also sorted alphabetically. 17 days ago
README.md add learnelixir.com to Websites section 5 days ago

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

Actors

Libraries and tools for working with actors and such.

  • exactor – Helpers for easier implementation of actors in Elixir.
  • poolboy – A hunky Erlang worker pool factory.
  • workex – Backpressure and flow control in EVM processes.

Algorithms and Datastructures

Libraries and implementations of algorithms and datastructures.

  • array – An Elixir wrapper library for Erlang’s array.
  • datastructures – A collection of protocols, implementations and wrappers to work with datastructures.
  • fsm – Finite state machine as a functional data structure.
  • hash_ring_ex – A consistent hash ring implemention for Elixir.
  • key2value – Erlang 2-way Set Associative Map.
  • lfsr – Elixir implementation of a binary Galois Linear Feedback Shift Register.
  • the_fuzz – Fuzzy string matching algorithm implementations.
  • trie – Erlang Trie Implementation.

Authentication

Libraries for implementing authentications schemes.

  • apache_passwd_md5 – Apache/APR Style Password Hashing.
  • htpasswd – Apache httpasswd file reader/writer in Elixir.
  • oauther – An OAuth 1.0 implementation for Elixir.

Build Tools

Project build and automation tools.

  • coffee_rotor – Rotor plugin to compile CoffeeScript files.
  • ExMake – A modern, scriptable, dependency-based build tool loosely based on Make principles.
  • reltool_util – Erlang reltool utility functionality application.
  • 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.
  • 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 analysing, parsing and manipulation codebases.

  • 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

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

CSV

Libraries and implementations working with CSV.

  • cesso – CSV handling library 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.

  • chronos – An elixir date/time library.
  • kalends – Kalends is a datetime library in pure Elixir with up-to-date timezone support using the Olson database.
  • moment – Parse, validate, manipulate, and display dates in Elixir.
  • timex – Easy to use Date and Time modules for Elixir.
  • timex_interval – A date/time interval library for Elixir projects, based on Timex.

Debugging

Libraries and tools for debugging code and applications.

  • booter – Boot an Elixir application step by step.
  • dbg – Distributed tracing for Elixir.

Files and Directories

Libraries and implementations for working with files and directories.

  • dir_walker – DirWalker lazily traverses one or more directory trees, depth first, returning successive file names.
  • Radpath – Path library for Elixir inspired by Python’s Enhpath

Framework Components

Standalone component from web development frameworks.

  • cors_plug – An elixir plug that adds CORS headers to requests and responds to preflight requests (OPTIONS) .
  • exrecaptcha – Simple reCaptcha display/verify code for Elixir applications.
  • flinch – Resource layer for Phoenix and Ecto projects for auto-generated RESTful CRUD APIs.
  • plug – A specification and conveniences for composable modules in between web applications.
  • plug_cors – CORS Plug.
  • plug_jwt – Plug for JWT authentication.
  • 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.

  • dynamo – Dynamo is an experimental web framework that runs on Elixir.
  • 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.
  • sugar – Modular web framework for Elixir.
  • weber – Web framework for Elixir inspired by Rails.

Geolocation

Libraries for geocoding addresses and working with latitudes and longitudes.

  • geo – A collection of GIS functions for Elixir.

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.

  • cauldron – An HTTP/SPDY server as a library.
  • exvcr – HTTP request/response recording library for elixir, inspired by VCR.
  • httpoison – Yet Another HTTP client for Elixir powered by hackney.
  • httpotion – Fancy HTTP client for Elixir, based on ibrowse.
  • httprot – HTTP client library.

Images

Libraries for working with and manipulating images.

  • exexif – Pure elixir library to extract tiff and exif metadata from jpeg files.
  • mogrify – An Elixir wrapper for ImageMagick command line.

JSON

Libraries and implementations working with JSON.

  • exjson – JSON parser and genarator in Elixir.
  • 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.
  • 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.

Markdown

Libraries and tools working with Markdown and such.

  • discount – Elixir NIF for discount, a Markdown parser.
  • earmark – Markdown parser for Elixir.
  • stmd – Elixir NIF for stmd (C implementation), a CommonMark parser.

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.
  • 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.
  • ex_rated – Simple and flexible rate-limiting for API’s or anything.* ex2ms – Translates Elixir functions to match specifications for use with ets.
  • exprint – A printf / sprintf library for Elixir, works as a wrapper for :io.format.
  • exquisite – LINQ-like match_spec generation for Elixir.
  • funnel – Streaming Elixir API built upon ElasticSearch’s percolation.
  • keys1value – Erlang set associative map for key lists.
  • mdef – Easily define multiple function heads in elixir.
  • 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.

Networking

Libraries and tools for using network related stuff.

  • chatty – A basic IRC client that is most useful for writing a bot.
  • ExIrc – IRC client adapter for Elixir projects.
  • hedwig – XMPP Client/Bot Framework for Elixir.
  • reagent – reagent is a socket acceptor pool for Elixir.
  • socket – Socket wrapping for Elixir.
  • wpa_supplicant – Elixir interface to the wpa_supplicant.

ORM and Datamapping

Libraries that implement object-relational mapping or datamapping techniques.

  • amnesia – Mnesia wrapper for Elixir.
  • atlas – Object Relational Mapper for Elixir.
  • dexts – Disk Elixir Terms Storage, dest wrapper.
  • ecto – A database wrapper and language integrated query for Elixir.
  • exleveldb – Elixir wrapper around Basho’s eleveldb module for LevelDB.
  • exredis – Redis client for Elixir.
  • exts – Elixir Terms Storage, ets wrapper.
  • hstore – Hstore support for Postgrex.
  • postgrex – PostgreSQL driver for Elixir.
  • ssdb_elixir – ssdb client for Elixir with focus on performance.
  • tirexs – An Elixir based DSL for managing the ElasticSearch related stuff.

OTP

Libraries for working with OTP related things.

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

Protocols

Special protocol and format libraries.

  • exprotobuf – Protocol Buffers in Elixir made easy.
  • message_pack – MessagePack Implementation for Elixir.

Queue

Libraries for working with event and task queues.

  • exrabbit – RabbitMQ bindings and DSL for Elixir.
  • heapq – A Heap-based Priority Queue Implementation in Elixir.
  • pqueue – Erlang Priority Queue Implementation.

Release Management

Libraries and tools for release management.

  • exrm – Automatically generate a release for your Elixir project.
  • exrm_rpm – Create a rpm for your elixir release with ease.

REST and API

Libraries and web tools for developing REST-ful APIs.

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

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.

Testing

Libraries for testing codebases and generating test data.

  • amrita – A polite, well mannered and thoroughly upstanding testing framework for Elixir.
  • excheck – Property-based testing library for Elixir (QuickCheck style).
  • faker – Faker is pure Elixir library for generating fake data.
  • hound – Elixir library for writing integration tests and browser automation.
  • meck – A mocking library for Erlang.

Text and Numbers

Libraries for parsing and manipulating text and numbers.

  • calliope – An elixir haml parser.
  • 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.
  • decimal – Arbitrary precision decimal arithmetic for Elixir.
  • dicer – A dice roller expression evaluator.
  • event_source_encoder – Encode data into EventSource compliant data.
  • exmoji – Emoji encoding swiss army knife for Elixir/Erlang.
  • inflex – An Inflector library for Elixir.
  • pinyin – chinese pinyin lib for elixir.
  • quickrand – Quick Random Number Generation.
  • saltie – Saltie is a pseudo-encryption library primarily used for obfuscating numerical identifiers to opaque strings.
  • uuid – UUID generator and utilities for Elixir.
  • uuid_erl – Erlang Native UUID Generation.

Third Party APIs

Libraries for accessing third party APIs.

  • balanced – Balanced Api Client for Elixir.
  • currently – A tool to display cards currently assigns on Trello.
  • dpd_client – An API client for the DPD service.
  • dropbox – Dropbox Core API client for Elixir.
  • ex_omegle – A minimal Omegle chat client library for Elixir.
  • ex_statsd – A statsd client implementation for Elixir.
  • exgravatar – An Elixir module for generating Gravatar urls.
  • extwitter – Twitter client library for elixir.
  • facebook – Facebook Graph API Wrapper written in Elixir.
  • forecast_io – Simple wrapper for Forecast.IO API.
  • hexoku – Heroku API client and Heroku Mix tasks for Elixir projects.
  • link_shrinkex – Elixir library for creating short URLs using Google’s URL Shortener API.
  • mailgun – Elixir Mailgun Client.
  • 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.
  • poxa – Open Pusher implementation compatible with Pusher libraries.
  • reap – Reap is a simple Elixir library for working with the refheap API.
  • simplex – An Elixir library for interacting with the Amazon SimpleDB API.

Translations and Internationalizations

Libraries providing translations or internationalizations.

  • linguist – Elixir Internationalization library.

Validations

Libraries and implementations for validation of data.

  • vex – An extensible data validation library for Elixir.

XML

Libraries and implementations working with XML.

  • exmerl – Elixir wrapper for xmerl.
  • quinn – XML parser for Elixir.
  • xml_builder – Elixir library for generating xml.

Resources

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

Books

Fantastic books and e-books.

  • Elixir for the functional Rubyist – Not yet released. By Johnny Winn.
  • Elixir in Action – A brief intro to the language followed by a more detailed look at building production-ready systems in Elixir by Saša Jurić (2014).
  • Erlang in Anger – This book intends to be a little guide about how to be the Erlang medic in a time of war by Fred Hebert (2014).
  • Introducing Elixir – A gentle introduction to the language, with lots of code examples and exercises by Simon St. Laurent and J. David Eisenberg (2013).
  • Programming Elixir – The book provides introduction to functional and concurrent programming with Elixir by Dave Thomas (2014).
  • The Little Elixir & OTP Guidebook – A book for learning Elixir and OTP through small to medium-sized projects by Benjamin Tan Wei Hao (2014).
  • Études for Elixir – A collection of exercises to program in Elixir by J. David Eisenberg (2013) (Github Repo).

Editors

Editors and IDEs useable for Elixir/Erlang

  • Atom – Elixir language support for Atom.
  • Jetbrains – Elixir for IntelliJ IDEA, RubyMine, WebStorm, PhpStorm, PyCharm, AppCode, Android Studio, 0xDBE.

Other Awesome Lists

Other amazingly awesome lists can be found at jnv/lists.

  • Awesome Erlang – A curated list of awesome Erlang libraries, resources and shiny things.

Reading

Elixir-releated reading materials.

Screencasts

Cool video tutorials.

  • Elixir Sips – Tiny screencasts for learning Elixir.

Websites

Useful web and Elixir-related websites and newsletters.

Contributing

Please see CONTRIBUTING for details.