Skip to content

Latest commit

 

History

History
7490 lines (5385 loc) · 302 KB

README.md

File metadata and controls

7490 lines (5385 loc) · 302 KB

🕶 Awesome Erlang 🕶

Awesome

A curated list of amazingly awesome Erlang libraries, resources and shiny thing inspired by awesome-elixir and forked from awesome-erlang.

Actors

Libraries and tools for working with actors and such.

  • poolboy: A hunky Erlang worker pool factory.
  • pooler: An OTP Process Pool Application
  • worker_pool: Erlang worker pool
  • episcina: A simple non intrusive resource pool for connections
  • erlang-stdinout-pool: stuff goes in, stuff goes out. there's never any miscommunication.
  • hottub: Simple, Fast, Permanent Erlang Worker Pool
  • swarm: Fast and simple acceptor pool for Erlang
  • pooly: Erlang OTP Process Pool
  • ecpool: Erlang Connection/Client Pool Library.
  • erlpool: Erlang round-robin load balancer for Erlang processes based on ETS.
  • cuesport: simple Erlang pool of workers.
  • gen_buffer: A generic message buffer behaviour with pooling and back-pressure for Erlang/Elixir.
  • JoelPM: A pooling mechanism for gen_servers.
  • erlangbureau: Small and flexible pool manager written in Erlang.
  • kuenishi: Active worker pool in OTP manner.
  • hnc-agency: hnc - Erlang worker pool.
  • gootik: Constant pool cache for Erlang for massive data.
  • doubleyou: Generic pool behavior.
  • okeuday: Erlang Process Pool as a Supervisor.
  • botsunit: Erlang worker pool.
  • lb: Load-Balancer for spreading Erlang messages to other processes/ports.
  • director: Fast, powerful and useful process supervisor library with different approaches.

Algorithms, Datastructures and Design Patterns

Libraries and implementations of algorithms and datastructures.

  • datum: A pure functional and generic programming for Erlang.
  • erlando: A set of syntax extensions like currying and monads for Erlang.
  • statebox: Erlang state monad with merge/conflict-resolution capabilities.
  • erlang_ds: A universal, extensible, data structure-agonstic library for augmenting, converting, and interfacing with Erlang Key-Value data structures.
  • riak_dt: Erlang library of state based CRDTs.
  • nif_helpers: An Erlang.mk plugin and C library for writing NIFs.
  • hooks: Generic plugin and hook system for Erlang applications.

Authentication

Libraries for implementing authentications schemes.

  • oauth2: Erlang OAuth2 Implementation.
  • auth: Production-worthy, generic authentication system. Currently implements both password-based and RSA-key-based authentication calls. Coming Soon: Two Factor Authentication.
  • oidcc: OpenId Connect client library in Erlang & Elixir

Blockchain

Blockchain applications and/or libraries using Erlang

  • aeternity: A new blockchain for æpps. Optimized for scalability via smart contracts inside state-channels. Has a built-in oracle for integration with real-world data. Comes with a naming system, for developerability.
  • amoveo: Amoveo is a blockchain meant for enforcement of investment and insurance contracts.
  • ecoinpool: A pool mining software written in Erlang for cryptographic currencies.

Build Tools

Project build and automation tools.

  • rebar: Erlang build tool that makes it easy to compile and test Erlang applications, port drivers and releases.
  • rebar3: A build tool for Erlang which can manage Erlang packages from hex.pm.
  • erlang.mk: A build tool for Erlang that just works, based on GNUMakefile
  • zx/zomp: ZX/Zomp makes starting Erlang projects and running Erlang programs lightweight and familiar.
  • agner: Agner is a rebar-friendly Erlang package index inspired by Clojars and Homebrew.
  • sync: On-the-fly recompiling for Erlang.
  • sinan: Erlang/OTP oriented build system.

Caching

Libraries for caching data.

  • cache: In-memory Segmented Cache.
  • nitro_cache: A simple in-memory caching server (used in Nitrogen)

Code Analysis

Libraries and tools for analysing, parsing and manipulation codebases.

  • Concuerror: Concuerror is a systematic testing tool for concurrent Erlang programs.
  • eflame: A Flame Graph profiler for Erlang.
  • geas: Geas is a tool that will detect the runnable official Erlang release window for your project, including its dependencies and provides many useful informations.

Codebase Maintenance

Libraries and tools to maintain a clean codebase.

  • elvis: Erlang Style Reviewer.
  • rekt: A parse transform to define new Erlang records from existing records, similar to inheritance in objected oriented languages.
  • pipeline: A parse transform to add a pipe mechanism to Erlang function composition (think Elixir's `|>` operator)

CMS

Erlang powered Content Management System (CMS)

A content management system (CMS) is computer software used to manage the creation and modification of digital content (content management). A CMS is typically used for enterprise content management (ECM) and web content management (WCM).

-- Wikipedia

  • LiquidCMS: KISS CMS based on Nitrogen Web Framework and Bootstrap.
  • khale: Khale is a somewhat-open CMS suitable for creating sites for open communities.
  • Chat: Instant Messenger respects ISO 20922 IETF 3394 3565 5280 5480 5652 5755 8551 ITU ASN.1 X.509 CMS PKCS-10 PCKS-7 OCSP LDAP DNS X9-42 X9-62 X25519 X488 SECP384r1.

Command Line Interfaces (CLI)

  • getopt: Erlang module to parse command line arguments using the GNU getopt syntax.
  • nebula: Small library for colored (ANSI) output in Erlang/Elixir/LFE. It's can be useful when you need to create user-friendly command-line application.
  • erlctl: Command Line Interface Framework for Erlang.
  • ectl: Escript command line utilities.
  • Erlang-command-line-interface: Telnet command line interface written in Erlang.
  • erlfmt: Formatting of Erlang terms from the command line.
  • ecli: Telecom style command line interface with tab completion.

Cryptography

  • erlang-dkg: Distributed key generation for Erlang (using pairing based cryptography).
  • erlang-crypto_rsassa_pss: RSASSA-PSS Public Key Cryptographic Signature Algorithm for Erlang and Elixir.
  • cinched: Cinched is a microservice to provide cryptographic and key management operations.
  • cryptographic: Erlang cryptographic library primarily written in Erlang to make distribution on multiple platforms easy.
  • erlang-ucrypto: µCrypto is a thin wrapper for the OpenSSL API's that are missing in OTP's crypto application.

Configuration Management

Libraries and tools related to configuration management.

  • stillir: Cache environment variables as Erlang app variables.

Databases

  • actordb: ActorDB is a distributed SQL database with the scalability of a KV store, while keeping the query capabilities of a relational database.
  • antidote: AntidoteDB is a highly available geo-replicated key-value database.
  • barreldb: Barrel is a modern document-oriented database in Erlang focusing on data locality (put/match the data next to you) and P2P.
  • cakedb: A stream oriented database.
  • cbt: Multi-layer MVCC log append-only database library based on the Apache CouchDB btree.
  • couchbeam: Apache CouchDB client in Erlang.
  • couchdb: An Erlang/Elixir CouchDB client.
  • cowdb: Pure Key/Value database library for Erlang Applications.
  • dbi: Erlang and Elixir DataBase Interface.
  • epgsql: PostgreSQL Driver for Erlang.
  • erlmongo: Erlang driver for MongoDB with gridfs that works with maps and proplists.
  • emysql: Emysql implements a stable driver toward the MySQL database. It currently support fairly recent versions (somewhere around 5.3+) and it is considered fairly stable in production.
  • ergl: A fault-tolerant marriage of causal and strong consistency.
  • imem: Clustered in-memory database based on MNESIA with simple SQL layer.
  • jamdb_oracle: Oracle Database driver for Erlang.
  • kvc: Key Value Coding for Erlang data structures
  • khepri: Khepri is a tree-like replicated on-disk database library for Erlang and Elixir.
  • memdb: Erlang memory backend K/V store.
  • migresia: A simple Erlang tool to automatically migrate Mnesia databases between versions.
  • minidb: A minimal in-memory distributed master-less document database
  • mnesia 🟊 : A heavy-duty real-time distributed database

    Static Badge Static Badge

  • mria: Mria is an extension for Mnesia database that adds eventual consistency to the cluster.
  • mysql-otp: MySQL/OTP – MySQL driver for Erlang/OTP.
  • nkbase: NkBASE distributed database
  • odi: OrientDB Database Interface for Erlang.
  • opencouch: A embeddable document oriented database compatible with Apache CouchDB.
  • plum_db: A globally replicated database using eventual consistency. It uses Epidemic Broadcast Trees and lasp-lang’s Partisan.
  • pgsql_migration: PostgreSQL migrations for Erlang.
  • rc: Chain Replication Database for KVS
  • ringo: Ringo is an experimental, distributed, replicating key-value store based on consistent hashing and immutable data. Unlike many general-purpose databases, Ringo is designed for a specific use case: For archiving small or medium-size data items.
  • rocker: Erlang/Elixir wrapper for RocksDB.
  • sql_bridge: An abstraction layer and database utility providing a unified interface for working with SQL databases (MySQL and PostgreSQL currently). (Not an ORM)
  • sumbo_db: sumo_db aims to ease db access for erlang applications. It offers a very simple persistance layer capable of interacting with different db's, while offering a consistent api to your code.
  • stockdb: stockdb is a storage for Stock Exchange quotes.
  • vaxine: Rich-CRDT database based on AntidoteDB.
  • yamndb: In-memory circular array database.

Date and Time

Libraries for working with dates and times.

  • chronos: Timer module for Erlang that makes it easy to abstact time out of the tests.
  • erlang_localtime: Erlang library for conversion from one local time to another.
  • ezic: A set of erlang utilities for the Olson timezone database files.
  • iso8601: An ISO 8601 date formating and parsing library for Erlang.
  • qdate: Erlang date, time, and timezone management: formatting, conversion, and date arithmetic.

Debugging

Libraries and tools for debugging code and applications.

  • 🟊 cover - A Coverage Analysis Tool for Erlang

  • 🟊 debugger - A debugger for debugging and testing of Erlang programs

  • 🟊 dialyzer - The DIALYZER, a DIscrepancy AnaLYZer for ERlang programs.

  • eministat: Port of Poul-Henning Kamp's ministat to the Erlang world.
  • et - Event Tracer (ET), uses the built-in trace mechanism in Erlang and provides tools for collection and graphical viewing of trace data.

  • flatlog: A custom formatter for the Erlang logger application that turns maps into single line text logs.
  • recon: Collection of functions and scripts to debug Erlang in production.
  • tx: An HTML Erlang term viewer, starts own webserver and displays any term you give it from your Erlang node.
  • 🟊 xref - A Cross Reference Tool for analyzing dependencies between functions, modules, applications and releases.

Deployment

Libraries and tools related to deployment of Erlang/OTP applications.

  • enit: An Erlang application release in a Docker container from scratch.
  • docker-erlang: Basic Docker Container Images for Erlang/OTP.
  • pkgx: Build .deb packages from Erlang releases.

Distributed Systems

Tools for stress/load testing, latency issues, etc. across microservices.

  • erleans: A framework for building distributed applications in Erlang and Elixir based on Microsoft Orleans.
  • nkcluster: A framework to manage jobs at huge Erlang clusters.
  • partisan: Partisan is a scalable and flexible, TCP-based membership system and distribution layer for the BEAM.
  • typhoon: Stress and load testing tool for distributed systems that simulates traffic from a test cluster toward a system-under-test (SUT) and visualizes related latencies.
  • enot: Package manager, build and deploy tool.

Documentation

Documenting Erlang code.

  • 🟊 edoc - the Erlang program documentation generator.

  • erldocs: This is the code used to generate documentation for erlang projects in the format of erldocs.com.
  • edown: EDoc extension for generating Github-flavored Markdown.
  • knot: A literate programming tool that uses Markdown.
  • asciiedoc: EDoc extension for generating HTML or GitHub-flavored Markdown from AsciiDoc sources.
  • escobar: Erlang source code to html transform.

Embedded

  • E4VM: A small portable virtual machine that would run Erlang on embedded systems.
  • gen_batch: A batch job running library for embedded Erlang/OTP.
  • i2c: Erlang api to i2c linux interface.
  • eel: Embedded Erlang (EEl).
  • mini-monkey: MiniMonkey is a tiny message routing system aimed for embedded systems. Especially the broker is programmatically provisioned.

Geolocation

Libraries for geocoding addresses and working with latitudes and longitudes.

  • erl-rstar: An Erlang implementation of the R*-tree spacial data structure.
  • geodata2: Erlang application for working with MaxMind geoip2 (.mmdb) databases.
  • geocouch: A spatial extension for Couchbase and Apache CouchDB.
  • teles: An Erlang network service for manipulating geographic data.

Graphical Interfaces

Libraries for creating and dealing with Graphical Interfaces (GUI)

  • slider: A WxErlang application to generate slidesets.

HTTP

Libraries for working with HTTP and scraping websites.

  • cowboy: A simple HTTP server.
  • elli: A webserver you can run inside your Erlang application to expose an HTTP API.
  • bullet: Simple, reliable, efficient streaming for Cowboy.
  • gun: Erlang HTTP client with support for HTTP/1.1, SPDY and Websocket.
  • hackney: Simple HTTP client in Erlang.
  • ibrowse: Erlang HTTP client.
  • lhttpc: A lightweight HTTP/1.1 client implemented in Erlang.
  • shotgun: For the times you need more than just a gun.
  • yaws: A webserver for dynamic content written in Erlang.
  • 🟊 inets:httpd - An implementation of an HTTP 1.1 compliant web server, as defined in RFC 2616.

  • 🟊 inets:httpc - An HTTP/1.1 client

  • webmachine: Webmachine is an application layer that adds HTTP semantic awareness on top of the excellent bit-pushing and HTTP syntax-management provided by mochiweb, and provides a simple and clean way to connect that to your application's behavior.
  • erlang-spdy: Library implementing the SPDY protocol.
  • mimerl: Library to handle mimetypes.

Image Processing

  • emagick: Wrapper for Graphics/ImageMagick command line tool.

Internet of Things

Libraries and tools for interacting with the physical world.

  • grisp: Run the Erlang VM on an IoT board with many hardware interfaces and low-level drivers using a small realtime unikernel called RTEMS.
  • achlys: Erlang framework for building applications with Lasp on GRiSP
  • grisp_emulation: Hardware emulation layer for the GRiSP runtime.
  • dgiot: Open source platform for iot , 6 min Quick Deployment,10M devices connection,Carrier level Stability.
  • erlem: Erlang IoT platform
  • lynkia: A library to make large-scale computations on IoT devices.
  • lemma_erlang: A lemma for IDEO's Noam internet-of-things prototyping platform.

Logging

Libraries for generating and working with log files.

  • bloberl: Simple log shipping to cloud object storage (S3, GCS and Azure Blob).

  • lager: A logging framework for Erlang/OTP. Typically Log Shippers like Filebeat, Fluentd, Logstash, etc. expect logs to be in JSON format. This is a custom logger formatter for Erlang that prints JSON.
  • lager: A logging framework for Erlang/OTP.
  • lager_amqp_backend: AMQP RabbitMQ Lager backend.
  • lager_hipchat: HipChat backend for lager.
  • lager_loggly: Loggly backend for lager.
  • lager_smtp: SMTP backend for lager.
  • lager_slack: Simple Slack backend for lager.
  • logplex: Heroku log router.

Miscellaneous

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

  • erlang-history: Hacks to add shell history to Erlang's shell.
  • erlias: A utility to create alias modules to other modules (not a parse transform).
  • erld: erld is a small program designed to solve the problem of running Erlang programs as a UNIX daemon.
  • erlmacs: erld is a simple script to update your .emacs file for Erlang development.

Monitoring

Libraries for gathering metrics and monitoring.

  • entop: A top-like Erlang node monitoring tool.
  • eper: A loose collection of Erlang Performance related tools.
  • erlubi: This is a simple visualizer for erlang systems using Ubigraph.
  • exometer: An Erlang instrumentation package.
  • folsom: An Erlang based metrics system inspired by Coda Hale's metrics.
  • mutop: Munin real-time monitoring tool, using multiple hosts and displaying in command-line using curses library.
  • 🟊 observer - Observer, tools for tracing and investigation of distributed systems

  • statsderl: A statsd Erlang client.
  • vmstats: Tiny Erlang app that works in conjunction with statsderl in order to generate information on the Erlang VM for graphite logs.

Networking

Libraries and tools for using network related stuff.

  • barrel_tcp: a generic TCP acceptor pool with low latency in Erlang.
  • gen_rpc: A scalable RPC library for Erlang-VM based languages.
  • gen_tcp_server: A library that takes the concept of gen_server and introduces the same mechanics for operating a TCP server.
  • gossiperl: Language agnostic gossip middleware and message bus written in Erlang.
  • nat_upnp: Erlang library to map your internal port to an external using UNP IGD.
  • ranch: Socket acceptor pool for TCP protocols.
  • natter: Erlang XMPP Client.
  • condor: Condor is a minimal library for building scalable TCP servers in Erlang.
  • inet_cidr: CIDR erlang library.
  • erlang-nat: Implements NAT handling facilities for Erlang applications.
  • sieve: sieve is a simple TCP routing proxy (layer 7) in Erlang.
  • socat: Command line utility to cat files via network socket.
  • sockerl: Library for implementing servers, clients and client pool in TCP protocols.
  • lorawan-server: Compact server for private LoRaWAN networks.

ORM and Datamapping

Libraries that implement object-relational mapping or datamapping techniques.

  • boss_db: A sharded, caching, pooling, evented ORM for Erlang.
  • couchdb: Document oriented database.
  • datalog: Datalog is a query language based on the logic programming paradigm. The library is designed to formalize relation of n-ary streams.
  • erlog: Erlog is an Erlang implemented Datalog.
  • erlquery: Erlang like, database agnostic DSL for composing queries.
  • esync: Simple tool to sync files.
  • merle: An Erlang Memcached Client.

Package Management

Libraries and tools for package and dependency management.

  • hex.pm - A package manager for the Erlang ecosystem.

Profiling

  • 🟊 cprof - The cprof module is used to profile a program to find out how many times different functions are called.

  • 🟊 eprof - A Time Profiling Tool for Erlang

  • 🟊 fprof - A Time Profiling Tool using trace to file for minimal runtime performance impact.

Queue

Libraries for working with event and task queues.

  • dq: Distributed Fault Tolerant Queue library.
  • ebqueue: Tiny simple blocking queue in Erlang.
  • pqueue: Erlang Priority Queues.
  • tinymq: A diminutive, in-memory message queue for Erlang.
  • couch_zmq: zeromq endpoint for couchdb.

Queueing Systems

Implementation of queueing and bus systems.

  • bondy: A WAMP (Web Application Messaging Protocol) Implementation in Erlang.
  • rabbitmq-server: An implementation of AMQP in Erlang.
  • vernemq: An MQTT Broker in Erlang

Rebar3 Plugins

REST and API

Libraries and web tools for developing REST-ful APIs.

  • echohttp: simple service echoing any requests.
  • leptus: Leptus is an Erlang REST framework that runs on top of cowboy.
  • rooster: Rooster is a lightweight REST framework that runs on top of mochiweb.

Release Management

Libraries and tools for release management.

  • relx: A release assembler for Erlang.

Templating

Templating system

  • aihtml: A simple html render libary more than Mustache Template Compiler.
  • bbmustache: Binary pattern match Based Mustache template engine for Erlang/OTP.
  • beard: Mustache inspired, performant templating solution for Erlang.
  • brim: HTML templating library.
  • dactyl: String templating library for Erlang
  • ehtml5: Simple Erlang Template Engine.
  • elk.erl: Erlang implementation of Mustache, logic-less template engine.
  • erlang-mustache: Implementation of mustache templating in Erlang.
  • erlydtl: ErlyDTL compiles Django Template Language to Erlang bytecode.
  • etcher: An Erlang implementation of the Django Template Language.
  • jaderl: An implementation of the Jade templating language in Erlang.
  • mustache.erl: An Erlang port of Mustache for Ruby.
  • roni: Erlang string templating with macaroni-filled syntax.
  • sgte: an Erlang template Engine for generating structured output (code, html web pages, xml, emails, csv files, etc...).
  • stache: Mustache Template Language for Erlang.
  • swirl: swirl is the Erlang port of whiskers.js template library.
  • template_compiler: Dynamic template compiler for Erlang (complete rewrite of the erlydtl fork used in Zotonic).
  • templaterl: Simple and fast templating with customizable expressions in Erlang.
  • walrus: A mustache-like templating.

Security

Security related projects in Erlang.

  • erlang-jose: JSON Object Signing and Encryption (JOSE) for Erlang and Elixir.
  • erlpass: A library to handle password hashing and changing in a safe manner, independent from any kind of storage whatsoever.

Testing

Libraries for testing codebases and generating test data.

  • ct_helper: Helper modules for common_test suites.
  • 🟊 common_test - A framework for automated testing of any target nodes.

  • damocles: An Erlang library for generating adversarial network conditions for QAing distributed applications/systems on a single Linux box.
  • 🟊 eunit - This module is the main EUnit user interface.

  • ponos: Ponos is a simple yet powerful erlang application used to generate load at configurable frequencies. It's designed to be lightweight, straight forward to use and to require minimal configuration.
  • proper: A QuickCheck-inspired property-based testing tool for Erlang.
  • tracerl: Dynamic tracing tests and utilities for Erlang/OTP.
  • bookish_spork: Erlang/Elixir library for testing HTTP requests

Text and Numbers

Libraries for parsing and manipulating text and numbers.

  • base62: Base 62 Encode and Decode for Erlang.
  • eql: Erlang with SQL or not.
  • fakerl: Erlang application for generating fake data.
  • qsp: Enhanced query string parser for Erlang.
  • 🟊 leex - A regular expression based lexical analyzer generator for Erlang, similar to lex or flex.

  • NumEr: Numeric Erlang - vector and matrix operations with CUDA. Heavily inspired by Pteracuda.
  • piqi-erlang: Protocol Buffers, JSON, XML data serialization system for Erlang.
  • qrcode: QR Code encoder in Erlang.
  • sgte: sgte is an Erlang template Engine for generating structured output (code, html web pages, xml, emails, csv files, etc...).
  • uuid: an implement of UUID.
  • 🟊 yecc - An LALR-1 parser generator for Erlang, similar to yacc. Takes a BNF grammar definition as input, and produces Erlang code for a parser.

Asciidoc

BERT

  • aberth: Generic BERT-RPC server in Erlang.
  • bert: BERT and BERT-RPC
  • bert.erl: Erlang BERT encoder/decoder.

BSON

  • bson: A strict, stand-alone BSON implementation for Erlang.
  • bson-erlang: BSON documents in Erlang.
  • ebson: BSON Support for Erlang.
  • erlbison: Erlbison is an Erlang library to work with BSON files. Its discerning feature is its attempt to do as much work as possible at the binary level, without translating the data to native Erlang data structure unless when absolutely necessary, in order to maximize performance.
  • nbson: Erlang BSON encoder/decoder.

CBOR

  • cbor-erlang: cbor encoder/decoder in Erlang.
  • erlang_cbor: Erlang implementation of Concise Binary Object Representation (CBOR), RFC 7049.

CVS

  • ecsv: ecsv is a simple Erlang CSV parser able to read a file or string and sending back to an erlang process events when a line is parsed.

HTML

  • hterl: An Erlang extension which adds HTML tags to the expression syntax.
  • htmerl: HTML Parser in Erlang.
  • mochiweb_xpath: XPath support for mochiweb's html parser.
  • trane: SAX style broken HTML parser in Erlang.

INI

JSON

  • erl-json: An implementation of the JSON data format in Erlang.

  • ejsv: Erlang JSON schema validator.
  • erlang-rfc4627: Erlang RFC4627 (JSON) codec and JSON-RPC server implementation.
  • euneus: An incredibly flexible and performant JSON parser and generator.
  • jiffy: JSON NIFs for Erlang.
  • jsx: An erlang application for consuming, producing and manipulating json.
  • miffy: Jiffy wrapper which returns pretty maps.
  • rec2json: Generate JSON encoder/decoder from record specs.
  • thoas: A blazing fast JSON parser and generator in pure Erlang.
  • simdjson_erlang: simdjson bindings for erlang
  • simdjsone: Erlang Fast JSON parser

Markdown

Protobuf

  • erlang_protobuffs: An implementation of Google's Protocol Buffers for Erlang.
  • gpb: A Google Protobuf implementation for Erlang.
  • proterlang: A protobuf library and compiler for Erlang.
  • ProtobufTool: protobuf tools in Erlang.

TOML

  • etoml: A pure Erlang parser for TOML.
  • toml: Erlang TOML parser.
  • tomerl: Erlang TOML Parser.
  • tomle: TOML in Erlang.

XML

  • erlsom - Erlsom is an Erlang library to parse (and generate) XML documents.

  • exml - XML parsing library in Erlang

  • exmlrpc - An HTTP 1.1 compliant XML-RPC library for Erlang

  • erlxml - erlxml - Erlang XML parsing library based on pugixml

  • fast_xml - Fast Expat based Erlang XML parsing and manipulation library, with a strong focus on XML stream parsing from network.

  • parsexml - Simple DOM XML parser with convenient and very simple API

  • 🟊 xmerl - xmerl XML parser is able to parse XML documents according to the XML 1.0 standard. As default it performs well-formed parsing, (syntax checks and checks of well-formed constraints).

  • xmlrpc - Erlang XML-RPC library by Joakim Grebenö

  • xqerl - Erlang XQuery 3.1 Processor

YAML

  • fast_yaml: Fast YAML native library for Erlang / Elixir.
  • yamerl: YAML 1.2 and JSON parser in pure Erlang.
  • yval: YAML validator.
  • yconf: YAML configuration processor.
  • yeml: Erlang YAML library.

Third Party APIs

Libraries for accessing third party APIs.

Translations and Internationalizations

Libraries providing translations or internationalizations.

Web Frameworks

Web development frameworks.

  • axiom: A micro-framework, inspired by Ruby's Sinatra.
  • ChicagoBoss: A server framework inspired by Rails and written in Erlang.
  • chloe: A realtime web server that doesn't suck... or at least won't suck when it's finished.
  • erlyweb: The Erlang twist on web frameworks.
  • giallo: A small and flexible web framework on top of cowboy.
  • mochiweb: An Erlang library for building lightweight HTTP servers.
  • n2o: WebSocket Application Server.
  • nitrogen: Framework to build web applications (including front-end) in pure Erlang.
  • nova: Nova makes it simple to build a fault-tolerant and distributed web application.
  • ryan: Ryan is a Reia/Erlang BEAM based web framework. It allows you to create web applications with clean and short code.
  • zotonic: High speed, real-time web framework and content management system.

Web Framework Components

Standalone component from web development frameworks.

  • canister: A distributed session management system.
  • cb_admin: An admin interface for Chicago Boss.
  • cb_websocket_controller: A template for implementing a Websocket controller for ChicagoBoss.
  • giallo_session: A session management library for the Giallo web framework.
  • simple_bridge: An abstraction layer providing a unified interface to popular Erlang web servers (Cowboy, Inets, Mochiweb, Webmachine, and Yaws).

Applications

Applications built with Erlang.

  • eradio: An Erlang HTTP server which streams data to multiple clients, lossily time-synchronized with low latency.

Resources

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

Articles

Books

Fantastic books and e-books.

Community

Erlang-related communities, meetups, chats and forums

Erlang Reading

Erlang-related reading materials.

Installers (and Packagers)

Erlang unofficial installers and packagers used by different communities to install/package it

Docker

  • erlang: Docker community maintained image

Linux/ArchLinux

Linux/Alpine

Linux/Debian

Linux/Fedora

Linux/Gentoo

Linux/NixOS

Linux/Ubuntu

Linux/Void

Microsoft Windows

Apple MacOS

FreeBSD

OpenBSD

NetBSD

DragonFlyBSD

Android

Papers

Erlang-related academic and scientific materials

Academic paper summary
date #papers
2023 21
2022 34
2021 24
2020 31
2019 45
2018 63
2017 65
2016 59
2015 52
2014 54
2013 87
2012 60
2011 90
2010 65
2009 42
2008 33
2008 1
2007 39
2006 22
2005 33
2004 21
2003 16
2002 22
2001 9
2000 13
1999 7
1998 6
1997 6
1996 13
1995 7
1994 2
1992 2
1990 1
1989 1

Screencasts

Cool video tutorials.

Web Reading

General web-development-related reading materials.

Websites

Useful web and Erlang-related websites and newsletters.

  • Erlang Bookmarks - All about erlang programming language [powerd by community].

  • Erlang Central - An awesome collections of erlang resource along with live community chat for discussing and seeking help.

  • Planet Erlang - Planet site/RSS feed of blog posts covering topics across the Erlang ecosystem.

  • Spawned Shelter - Erlang Spawned Shelter. A collection of the best articles, videos and presentations related to Erlang.

  • The OTP team Blog - A blog written by members of the Erlang/OTP team at Ericsson. Contains interesting technical posts about the development of Erlang/OTP.

  • Spawned Shelter - This page is a collection of the best articles, videos and books for learning Erlang, the internals of its virtual machine and other languages that run on top of it like Elixir, LFE and Efene.

  • Jesper L. Andersen's blog

Other Erlang related lists

Other lists of projects and resources.

  • Spawned Shelter!: This page is a collection of the best articles, videos and books for learning Erlang, the internals of its virtual machine and other languages that run on top of it like Elixir, LFE and Efene.

  • Erlang Ecosystem Foundation Academic Papers: Papers are organized chronologically. We attempt to show the BEAM related tech highlighted for each paper.

  • Erlang Ecosystem Foundation Community The Erlang ecosystem consists of a vibrant and diverse set of languages, tools, platforms, and much more. Help us grow our community and augment this collection of resources by contributing on Github

  • drobakowski/awesome-erlang: A curated list of amazingly awesome Erlang libraries, resources and shiny thing inspired by awesome-elixir.

  • singularitypostman/awesome-erlang-1: A curated list of awesome Erlang frameworks, libraries and software.

  • uhub/awesome-erlang: A curated list of awesome Erlang frameworks, libraries and software.

  • mudssrali/erlang-elixir-stuff: Awesome Erlang and Elixir reading, learning and practice material

  • szTheory/beamtoolbox: Curated BEAM language libraries by category. All killer, no filler.

  • opencensus-beam/awesome-beam-monitoring: The curated list of tools for monitoring, instrumenting, and tracing applications that run on BEAM. Inspired by many of such lists over the GitHub.

  • macintux/erlang-resources.md: This is not intended to be comprehensive or authoritative, just free online resources I've found valuable while learning more about Erlang.

  • h4cc/awesome-elixir: A curated list of amazingly awesome Elixir libraries, resources, and shiny things inspired by awesome-php.

  • wmealing/awesome-lfe: Have a LFE project to share with the world? Make a pull request and add it to the list.

  • gleam-lang/awesome-gleam: For a full list of packages check out the Gleam package index.

Contributing

Please see CONTRIBUTING for details.