Batteries Included

The list of modules that comes with Erlang is extensive. It can be hard for a new user of Erlang to know how to approach this list.

This is a break down of modules you will most likely make use of.

Data Structures

lists

Manipulate Erlang lists, commonly used higher order functions

proplists

Manipulate lists of “property” values

dict

Key/value dictionary

sets

Collection of unique elements

queue

FIFO queues

orddict

Ordered dictionaries

ordsets

Ordered sets

string

String manipulation

unicode

Unicode manipulation

Data Storage and Retrieval

ets

In memory Erlang term storage

dets

On disk Erlang term storage

Files

file

Higher level file operations

filelib

Lower level file operations

filename

File name manipulation

Date/Time

calendar

Miscellaneous date and time functions

Networking

inet

Various TCP/IP functions

gen_tcp

Interface to TCP/IP sockets

gen_udp

Interface to UDP sockets

gen_sctp

Interface to SCTP sockets

General IO

io

IO server functions

io_lib

IO library functions

Regular Expressions

re

Regular expression support

Erlang System

erlang

Erlang BIFs (built in functions)

sys

Interface to Erlang system messages

init

Coodination of Erlang system startup

Operating System

os

Operating system functions

File Archives and Compression

zip

Read and create zip archives

zlib

ZLIB compression support

Hash Digests and Cryptography

base64

base64 encoding and decoding

crypto

Cryptographic functions

General Computation

math

Common mathematical functions

random

Pseudo random number generation

Testing

eunit

EUnit support

ct

Common Test support

Debugging

dbg

Text based tracing

debugger

Graphical debugger

Developer Utilities

edoc

Documentation generator

cover

Coverage analysis

cprof

Call count profiling tool

fprof

Time profiling tool

dialyzer

Discrepancy analysis tool

Internet

ftp

FTP client

httpc

HTTP client

httpd

HTTP server

OTP

application

OTP application functions

proc_lib

Lowed level OTP support

gen_server

High level OTP interface for Erlang processes

supervisor

Supervise other OTP processes

gen_event

Extensible OTP interface for Erlang processes

gen_fsm

OTP interface for finite state machines