# Elixir v1.10.3 API Reference

## Modules

Access

Key-based access to data structures.

Agent

Agents are a simple abstraction around state.

Application

A module for working with applications and defining application callbacks.

ArgumentError
ArithmeticError
Atom

Atoms are constants whose values are their own name.

BadArityError
BadBooleanError
BadFunctionError
BadMapError
BadStructError
Base

This module provides data encoding and decoding functions according to RFC 4648.

Behaviour deprecated

Mechanism for handling behaviours.

Bitwise

A set of functions that perform calculations on bits.

Calendar

This module defines the responsibilities for working with calendars, dates, times and datetimes in Elixir.

Calendar.ISO

A calendar implementation that follows to ISO 8601.

Calendar.TimeZoneDatabase

This module defines a behaviour for providing time zone data.

Calendar.UTCOnlyTimeZoneDatabase

Built-in time zone database that works only in Etc/UTC.

CaseClauseError
Code

Utilities for managing code compilation, code evaluation, and code loading.

Code.LoadError
Collectable

A protocol to traverse data structures.

CompileError
CondClauseError
Config

A simple keyword-based configuration API.

Config.Provider

Specifies a provider API that loads configuration during boot.

Config.Reader

API for reading config files defined with `Config`.

Date

A Date struct and functions.

Date.Range

Returns an inclusive range between dates.

DateTime

A datetime implementation with a time zone.

Dict deprecated

Generic API for dictionaries.

DynamicSupervisor

A supervisor that starts children dynamically.

Enum

Provides a set of algorithms to work with enumerables.

Enum.EmptyError
Enum.OutOfBoundsError
Enumerable

Enumerable protocol used by `Enum` and `Stream` modules.

ErlangError
Exception

Functions to format throw/catch/exit and exceptions.

File

This module contains functions to manipulate files.

File.CopyError
File.Error
File.LinkError
File.RenameError
File.Stat

A struct that holds file information.

File.Stream

Defines a `File.Stream` struct returned by `File.stream!/3`.

Float

Functions for working with floating-point numbers.

Function

A set of functions for working with functions.

FunctionClauseError
GenEvent deprecated

A event manager with event handlers behaviour.

GenServer

A behaviour module for implementing the server of a client-server relation.

HashDict deprecated

Tuple-based HashDict implementation.

HashSet deprecated

Tuple-based HashSet implementation.

IO

Functions handling input/output (IO).

IO.ANSI

Functionality to render ANSI escape sequences.

IO.Stream

Defines an `IO.Stream` struct returned by `IO.stream/2` and `IO.binstream/2`.

IO.StreamError
Inspect

The `Inspect` protocol converts an Elixir data structure into an algebra document.

Inspect.Algebra

A set of functions for creating and manipulating algebra documents.

Inspect.Error

Raised when a struct cannot be inspected.

Inspect.Opts

Defines the options used by the `Inspect` protocol.

Integer

Functions for working with integers.

Kernel

`Kernel` is Elixir's default environment.

Kernel.ParallelCompiler

A module responsible for compiling and requiring files in parallel.

Kernel.SpecialForms

Special forms are the basic building blocks of Elixir, and therefore cannot be overridden by the developer.

KeyError
Keyword

Keyword lists are lists of two-element tuples, where the first element of the tuple is an atom and the second element can be any value, used mostly to work with optional values.

List

Linked lists hold zero, one, or more elements in the choosen order.

List.Chars

The `List.Chars` protocol is responsible for converting a structure to a charlist (only if applicable).

Macro

Macros are compile-time constructs that are invoked with Elixir's AST as input and a superset of Elixir's AST as output.

Macro.Env

A struct that holds compile time environment information.

Map

Maps are the "go to" key-value data structure in Elixir.

MapSet

Functions that work on sets.

MatchError
Module

Provides functions to deal with modules during compilation time.

NaiveDateTime

A NaiveDateTime struct (without a time zone) and functions.

Node

Functions related to VM nodes.

OptionParser

Functions for parsing command line arguments.

OptionParser.ParseError
Path

This module provides conveniences for manipulating or retrieving file system paths.

Port

Functions for interacting with the external world through ports.

Process

Conveniences for working with processes and the process dictionary.

Protocol

Reference and functions for working with protocols.

Protocol.UndefinedError
Range

Ranges represent a sequence of one or many, ascending or descending, consecutive integers.

Record

Module to work with, define, and import records.

Regex

Provides regular expressions for Elixir.

Regex.CompileError
Registry

A local, decentralized and scalable key-value process storage.

RuntimeError
Set deprecated

Generic API for sets.

Stream

Functions for creating and composing streams.

String

Strings in Elixir are UTF-8 encoded binaries.

String.Chars

The `String.Chars` protocol is responsible for converting a structure to a binary (only if applicable).

StringIO

Controls an IO device process that wraps a string.

Supervisor

A behaviour module for implementing supervisors.

Supervisor.Spec deprecated

Outdated functions for building child specifications.

SyntaxError
System

The `System` module provides functions that interact directly with the VM or the host system.

SystemLimitError
Task

Conveniences for spawning and awaiting tasks.

Task.Supervisor

A task supervisor.

Time

A Time struct and functions.

TokenMissingError
TryClauseError
Tuple

Functions for working with tuples.

URI

Utilities for working with URIs.

UndefinedFunctionError
UnicodeConversionError
Version

Functions for parsing and matching versions against requirements.

Version.InvalidRequirementError
Version.InvalidVersionError
Version.Requirement

A struct that holds version requirement information.

WithClauseError