Elixir库、资源和实用的内容:Awesome Elixir

jopen 9年前

Elixir 是一个基于Erlang VM的函数式元编程语言(类似Ruby),通过动态语言的灵活的语法和宏能够利用Erlang建立一个并发 分布 失败冗余的高质量代码。 Elixir提供第一层次的模式匹配pattern matching, 通过协议的多态性(类似 Clojure), 别名等。 Elixir 和 Erlang 分享同样的字节码和数据类型,可以直接调用Erlang。

  • Awesome Elixir </li>
  • Resources
    • Books
    • Other Awesome Lists
    • Reading
    • Screencasts
    • Websites
    • </ul> </li>
    • Contributing
    • </ul>

      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.
      • hash_ring_ex - A consistent hash ring implemention for Elixir.
      • lfsr - Elixir implementation of a binary Galois Linear Feedback Shift Register.
      • fsm - Finite state machine as a functional data structure.

      Authentication

      Libraries for implementing authentications schemes.

      • oauther - An OAuth 1.0 implementation for Elixir.

      Build Tools

      Project build and automation tools.

      • ExMake - A modern, scriptable, dependency-based build tool loosely based on Make principles.
      • rotor - Super-simple build system for Elixir.
      • coffee_rotor - Rotor plugin to compile CoffeeScript files.

      Caching

      Libraries for caching data.

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

      Code Analysis

      Libraries and tools for analysing, parsing and manipulation codebases.

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

      Configuration

      Libraries and tools working with configurations

      • figaro - Simple Elixir project configuration.
      • conform - Easy release configuration for Elixir apps.
      • ex_conf - Simple Elixir Configuration Management.

      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.
      • timex - Easy to use Date and Time modules for Elixir.
      • timex_interval - A date/time interval library for Elixir projects, based on Timex.
      • moment - Parse, validate, manipulate, and display dates in Elixir.

      Debugging

      Libraries and tools for debugging code and applications.

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

      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.

      Framework Components

      Standalone component from web development frameworks.

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

      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.
      • jsx - an erlang application for consuming, producing and manipulating json.
      • jsxn - jsx but with maps.

      Markdown

      Libraries and tools working with Markdown and such.

      • discount - Elixir NIF for discount, a Markdown parser.
      • earmark - Markdown parser for Elixir.

      Miscellaneous

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

      • Apex - Awesome Print for Elixir.
      • ex2ms - Translates Elixir functions to match specifications for use with ets.
      • exprint - A printf / sprintf library for Elixir. It works as a wrapper for :io.format.
      • exquisite - LINQ-like match_spec generation for Elixir.
      • ex_rated - Simple and flexible rate-limiting for API's or anything.
      • funnel - Streaming Elixir API built upon ElasticSearch's percolation.
      • 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.
      • 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.

      • atlas - Object Relational Mapper for Elixir.
      • dexts - Disk Elixir Terms Storage, dest wrapper.
      • ecto - A database wrapper and language integrated query for Elixir.
      • exredis - Redis client for Elixir.
      • exts - Elixir Terms Storage, ets wrapper.
      • postgrex - PostgreSQL driver for Elixir.
      • ssdb_elixir - ssdb client for Elixir with focus on performance.

      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.

      Queue

      Libraries for working with event and task queues.

      • exrabbit - RabbitMQ bindings and DSL for Elixir.

      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.

      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.

      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.
      • event_source_encoder - Encode data into EventSource compliant data.
      • inflex - An Inflector library for Elixir.
      • pinyin - chinese pinyin lib for elixir.
      • saltie - Saltie is a pseudo-encryption library primarily used for obfuscating numerical identifiers to opaque strings.
      • uuid - UUID generator and utilities for Elixir.
      • exmoji - Emoji encoding swiss army knife for Elixir/Erlang.

      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.
      • exgravatar - An Elixir module for generating Gravatar urls.
      • ex推ter - 推ter client library for elixir.
      • ex_omegle - A minimal Omegle chat client library for Elixir.
      • 非死book - 非死book Graph API Wrapper written in Elixir.
      • parsex - ParsEx is an Elixir HTTP Client for communicating with Parse.com's Restful API.
      • parse_client - Elixir client for the parse.com REST API.
      • 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.

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

      Resources

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

      Books

      Fantastic books and e-books.

      • Programming Elixir - The book provides introduction to functional and concurrent programming with Elixir by Dave Thomas (2014).
      • 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).
      • 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).
      • Introducing Elixir - A gentle introduction to the language, with lots of code examples and exercises by Simon St. Laurent and J. David Eisenberg (2013).
      • Elixir for the functional Rubyist - Not yet released. By Johnny Winn.
      • 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).

      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.

      Websites

      Useful web and Elixir-related websites and newsletters.

      项目主页:http://www.open-open.com/lib/view/home/1413445915059