BEAM Toolbox¶
A list of tools and libraries that are useful for BEAM languages like efene, erlang, LFE and Elixir projects.
- Access Control
- Auth
- Build Tools
- Cache
- Clients
- Cloud
- Command Line
- Compression
- Configuration
- Cryptography
- Database Clients
- Databases
- Data Formats
- Data Structures
- Data Structure Manipulation
- Date and Time
- Distributed Programming
- Fault Tolerance
- File System
- Generative Testing
- HTTP Clients
- Interop
- Internet of Things
- Javascript
- JSON
- JSON Schema
- JSON Web Token
- JSON Patch
- Load Generators
- Logging
- Metrics
- Mocking
- Networking
- Package Manager
- Patterns
- Parsing
- Parse Transforms & Erlang AST manipulation
- Performance and Debugging
- Plugins
- Protocols
- Probabilistic Data Structures
- Products
- XMPP Servers
- XMPP Clients
- Pub/Sub
- Rate Limiting
- Release Management
- Routing
- Scheduling
- Server Sent Events Clients
- Sockets
- SOAP
- Static Checkers
- Statistics
- Security
- Templates
- Testing
- Time Series
- Tools
- Utils
- Web Servers
- Web Server Utilities
- Web Frameworks
- Web Sockets Servers
- Web Sockets Clients
- Worker/Resource Pools
- XML
Clients¶
- kafkerl: Apache Kafka producer/consumer for erlang
- ekaf: A minimal, high-performance Kafka client in Erlang
- cqerl: Native Erlang CQL client for Cassandra
- etorrent: Erlang Bittorrent Client
- amqp_client: Rebar-friendly fork of rabbitmq-erlang-client
- zeta: An Erlang client for Riemann
- chumak: Pure Erlang implementation of ZeroMQ Message Transport Protocol
Compression¶
- erlang-lz4: LZ4 bindings for Erlang
Configuration¶
- Cuttlefish
- econfig: simple Erlang config handler using INI files
Data Formats¶
- edn-erlang
- erldn
- transit-erlang: Transit format for erlang
- msgpack-erlang: MessagePack (de)serializer implementation for Erlang
- protobuffs
- thrift
- eavro
- benc: Erlang BEncode parser/unparser
- leo_csv: CSV Parser for Erlang
Data Structures¶
- StateBox
- riak_dt
- pqueue: Erlang Priority Queues
- erlang-lru: Erlang LRU: a fixed size LRU cache
Date and Time¶
- dh_date: Date formatting / parsing library for erlang
- qdate: Erlang date, time, and timezone management: formatting, conversion, and date arithmetic
- strftimerl: Erlang implementation of strftime
- erlang_iso8601: Erlang ISO 8601 date formatter/parser
Distributed Programming¶
- Riak Core: distributed system framework, the core of riak_kv
- chash: consistent hashing library extracted from riak_core
- plumtree: epidemic broadcast protocol
- disco: Map/Reduce framework for distributed computing http://discoproject.org
- nkdist: Erlang distributed processes
- nkcluster: A framework to manage jobs at huge Erlang clusters
- dht: DHT implementation in Erlang
- syn: global process registry for Erlang
Fault Tolerance¶
- fuse: A Circuit Breaker for Erlang
- safetyvalve: A safety valve for your erlang node
- breaky: supervise and manage modules and processes depending on external resources.
- circuit_breaker: Generic circuit breaker that can be used to break any service that isn’t fully functional
- elarm:: an Alarm Manager for Erlang
File System¶
- fuserl: Erlang bindings for FUSE
Generative Testing¶
- Triq
- QuickCheck
- PropEr
- eqc_lib: Erlang QuickCheck common library functions
Internet of Things¶
- gen_coap: Generic Erlang CoAP Client/Server
- vernemq: The most scalable MQTT Message Broker. Powering IoT, M2M, Mobile, and Web Applications.
- emqtt: The Massively Scalable MQTT Broker written in Erlang/OTP
- emqttc: Asynchronous Erlang MQTT Client
- rabbitmq-mqtt: RabbitMQ MQTT gateway
Logging¶
- Lager
- erlang-syslog: Erlang port driver for interacting with syslog via syslog(3)
- chronica: Logger framework for Erlang applications
Metrics¶
- Exometer: Basic measurement objects and probe behavior
- exometer_json: exometer reporter to push JSON to a sink over HTTP
- Folsom: Expose Erlang Events and Metrics
- MzMetrics: High performance Erlang metrics library
Package Manager¶
- Hex
- Rebar3 Hex Plugin: plugin to use hex from rebar3
Patterns¶
- Erlang Patterns: An experimental project to apply Christopher Alexander’s pattern language method, as outlined in The Timeless Way of Building, to Erlang programming.
Parse Transforms & Erlang AST manipulation¶
- ast_walk: Walk the Erlang AST with the ability to mutate it and keep state during transversal
- erl_id_trans: Erlang identity AST transoform
Probabilistic Data Structures¶
- hyper: Erlang implementation of HyperLogLog
Products¶
- CouchDB: Database that uses JSON for documents, JavaScrip tfoi MapReduce indexes, anod regular HTTP for its API
- RabbitMQ: Robust messaging for applications
- Riak: Distributed NoSQL database with a key/value design and advanced local and multi-cluster replication
- LeoFS: Unstructured Object Storage for the Web and a highly available, distributed, eventually consistent storage system.
- OpenFlow: Software Defined Networking (SDN)
- Zotonic: The Erlang Web Framework & CMS
- logplex: Heroku log router
- Chef: Automation for Web-Scale IT
XMPP Servers¶
- Ejabberd: World’s Most Popular XMPP Server
- MongooseIM: Base platform for building high performance messaging systems leveraging XMPP
XMPP Clients¶
- escalus: XMPP client library for conveniently testing XMPP servers
Routing¶
- Router
- Cowboy Trails: A couple of improvements over Cowboy Routes
Statistics¶
- basho_stats
- bear: a set of statistics functions for erlang
Security¶
- erlang-certifi: SSL Certificates for Erlang
Time Series¶
- Tnesia: Time-series Data Storage
- DalmatinerDB: A fast, distributed metric store
- RiakTS: NOTE: as of this writing, Riak TS is a branch inside Riak KV, the link may be outdated
Tools¶
- observer_cli: A sharp shell tool see erlang node.
- erlyberly: debugger for erlang and elixir using erlang tracing. It is probably the easiest and quickest way to start debugging your erlang nodes.
- visualixir: toy process visualizer for remote BEAM nodes, written in Phoenix/Elixir/d3.
- edump: Erlang Crashdump Analysis Suite
- kerl: Easy building and installing of Erlang/OTP instances
Web Server Utilities¶
- Cowboy Swagger: Swagger integration for Cowboy (built on trails)
- sumo_rest: Generic cowboy handlers to work with Sumo
- vegur: HTTP Proxy Library
Web Frameworks¶
- Axiom
- ChicagoBoss
- Tuah: A Simple Cowboy Frontend, inspired by BeepBeep
Worker/Resource Pools¶
- Sidejob
- Poolboy
- worker_pool
- episcina
- gascheduler
- dispcount: Erlang task dispatcher based on ETS counters
- leo_pod <https://github.com/leo-project/leo_pod>_: A Fast Erlang worker pool manager