std

Phobos is the D standard library, built on top of druntime.

Modules

algorithm
module std.algorithm

This package implements generic algorithms oriented towards the processing of sequences. Sequences processed by these functions define range-based interfaces. See also Reference on ranges and tutorial on ranges. interfaces. See also Reference on ranges and tutorial on ranges.

array
module std.array

Functions and types that manipulate built-in arrays and associative arrays.

ascii
module std.ascii

Functions which operate on ASCII characters.

base64
module std.base64

Support for Base64 encoding and decoding.

bigint
module std.bigint

Arbitrary-precision ('bignum') arithmetic.

bitmanip
module std.bitmanip

Bit-level manipulation facilities.

compiler
module std.compiler

Identify the compiler used and its various features.

complex
module std.complex

This module contains the Complex type, which is used to represent complex numbers, along with related mathematical operations and functions.

concurrency
module std.concurrency

This is a low-level messaging API upon which more structured or restrictive APIs may be built. The general idea is that every messageable entity is represented by a common handle type called a Tid, which allows messages to be sent to logical threads that are executing in both the current process and in external processes using the same interface. This is an important aspect of scalability because it allows the components of a program to be spread across available resources with few to no changes to the actual implementation.

container
module std.container

This module defines generic containers.

conv
module std.conv

A one-stop shop for converting values from one type to another. Typical usage: to!SomeType(some_variable);

csv
module std.csv

Implements functionality to read Comma Separated Values and its variants from an input range of dchar.

datetime
module std.datetime
demangle
module std.demangle

Demangle D mangled names.

digest
module std.digest

This module describes the digest APIs used in Phobos. All digests follow these APIs. Additionally, this module contains useful helper methods which can be used with every digest type.

encoding
module std.encoding

Classes and functions for handling and transcoding between various encodings.

exception
module std.exception

This module defines functions related to exceptions and general error handling. It also defines functions intended to aid in unit testing.

experimental
module std.experimental

This package contains experimental modules that are being tested prior to an expected release into the main Phobos std namespace.

file
module std.file

Utilities for manipulating files and scanning directories. Functions in this module handle files as a unit, e.g., read or write one file at a time. For opening files and manipulating them via handles refer to module std.stdio. For functions to inspect a path string, see std.path.

format
module std.format

This module implements the formatting functionality for strings and <<<<<<< HEAD I/O. It's comparable to C99's vsprintf() and uses a similar format encoding scheme. ======= I/O. It's comparable to C99's vsprintf() and uses a similar format encoding scheme. >>>>>>> c029ef2ead0d07895f9a931d4f643bbf767b8321

functional
module std.functional

Functions that manipulate other functions.

getopt
module std.getopt

Processing of command line options.

json
module std.json

JavaScript Object Notation

math
module std.math

Contains the elementary mathematical functions (powers, roots, and trigonometric functions), and low-level floating-point operations. Mathematical special functions are available in std.mathspecial.

mathspecial
module std.mathspecial

Mathematical Special Functions

meta
module std.meta

Templates to manipulate template parameter sequences (also known as alias sequences).

mmfile
module std.mmfile

Read and write memory mapped files.

net
module std.net
numeric
module std.numeric

This module is a port of a growing fragment of the numeric header in Alexander Stepanov's Standard Template Library, with a few additions.

outbuffer
module std.outbuffer

Serialize data to ubyte arrays.

parallelism
module std.parallelism

<<<<<<< HEAD std.parallelism implements high-level primitives for SMP parallelism. These include parallel foreach, parallel reduce, parallel eager map, pipelining and future/promise parallelism. std.parallelism is recommended when the ======= std.parallelism implements high-level primitives for SMP parallelism. These include parallel foreach, parallel reduce, parallel eager map, pipelining and future/promise parallelism. std.parallelism is recommended when the >>>>>>> c029ef2ead0d07895f9a931d4f643bbf767b8321 same operation is to be executed in parallel on different data, or when a function is to be executed in a background thread and its result returned to a well-defined main thread. For communication between arbitrary threads, see std.concurrency.

process
module std.process

Functions for starting and interacting with other processes, and for working with the current process' execution environment.

random
module std.random

Facilities for random number generation.

range
module std.range

This module defines the notion of a range. Ranges generalize the concept of arrays, lists, or anything that involves sequential access. This abstraction enables the same set of algorithms (see std.algorithm) to be used with a vast variety of different concrete types. For example, a linear search algorithm such as std.algorithm.searching.find works not just for arrays, but for linked-lists, input files, incoming network data, etc.

regex
module std.regex

Regular expressions are a commonly used method of pattern matching on strings, with regex being a catchy word for a pattern in this domain specific language. Typical problems usually solved by regular expressions include validation of user input and the ubiquitous find & replace in text processing utilities.

signals
module std.signals

Signals and Slots are an implementation of the Observer Pattern. Essentially, when a Signal is emitted, a list of connected Observers (called slots) are called.

stdint
module std.stdint

D constrains integral types to specific sizes. But efficiency of different sizes varies from machine to machine, pointer sizes vary, and the maximum integer size varies. stdint offers a portable way of trading off size vs efficiency, in a manner compatible with the stdint.h definitions in C.

stdio
module std.stdio

Standard I/O functions that extend core.stdc.stdio. core.stdc.stdio is publically imported when importing std.stdio.

string
module std.string

String handling functions.

system
module std.system

Information about the target operating system, environment, and CPU.

traits
module std.traits

Templates which extract information about types and symbols at compile time.

typecons
module std.typecons

This module implements a variety of type constructors, i.e., templates that allow construction of new, useful general-purpose types.

typetuple
module std.typetuple

This module was renamed to disambiguate the term tuple, use std.meta instead.

uni
module std.uni

The std.uni module provides an implementation of fundamental Unicode algorithms and data structures. This doesn't include UTF encoding and decoding primitives, see std._utf.decode and std._utf.encode in std.utf for this functionality.

uri
module std.uri

Encode and decode Uniform Resource Identifiers (URIs). URIs are used in internet transfer protocols. Valid URI characters consist of letters, digits, and the characters ;/?:@&amp;=+$,-_.!~*'() Reserved URI characters are ;/?:@&amp;=+$, Escape sequences consist of % followed by two hex digits.

utf
module std.utf

Encode and decode UTF-8, UTF-16 and UTF-32 strings.

uuid
module std.uuid

A UUID, or Universally unique identifier, is intended to uniquely identify information in a distributed environment without significant central coordination. It can be used to tag objects with very short lifetimes, or to reliably identify very persistent objects across a network.

variant
module std.variant

This module implements a discriminated union type (a.k.a. tagged union, algebraic type). Such types are useful for type-uniform binary interfaces, interfacing with scripting languages, and comfortable exploratory programming.

windows
module std.windows

std.windows provides helper functions for interacting with the Win32 API.

xml
module std.xml

Warning: This module is considered out-dated and not up to Phobos' current standards. It will remain until we have a suitable replacement, but be aware that it will not remain long term.

zip
module std.zip

Read/write data in the zip archive format. Makes use of the etc.c.zlib compression library.

zlib
module std.zlib

<<<<<<< HEAD Compress/decompress data using the zlib library. ======= Compress/decompress data using the zlib library. >>>>>>> c029ef2ead0d07895f9a931d4f643bbf767b8321

Meta

Suggestion Box / Bug Report