On this page
Phobos Runtime Library
Phobos is the standard runtime library that comes with the D language compiler.
Generally, the std
namespace is used for the main modules in the Phobos standard library. The etc
namespace is used for external C/C++ library bindings. The core
namespace is used for low-level D runtime functions.
The following table is a quick reference guide for which Phobos modules to use for a given category of functionality. Note that some modules may appear in more than one category, as some Phobos modules are quite generic and can be applied in a variety of situations.
Modules | Description |
---|---|
Algorithms & ranges | |
std.algorithm std.range std.range.primitives std.range.interfaces |
Generic algorithms that work with ranges of any type, including strings, arrays, and other kinds of sequentially-accessed data. Algorithms include searching, comparison, iteration, sorting, set operations, and mutation. |
Array manipulation | |
std.array std.algorithm |
Convenient operations commonly used with built-in arrays. Note that many common array operations are subsets of more generic algorithms that work with arbitrary ranges, so they are found in std.algorithm . |
Containers | |
std.container.array std.container.binaryheap std.container.dlist std.container.rbtree std.container.slist |
See std.container.* for an overview. |
Data formats | |
std.base64 |
Encoding / decoding Base64 format. |
std.csv |
Read Comma Separated Values and its variants from an input range of dchar . |
std.json |
Read/write data in JSON format. |
std.xml |
Read/write data in XML format. |
std.zip |
Read/write data in the ZIP archive format. |
std.zlib |
Compress/decompress data using the zlib library. |
Data integrity | |
std.experimental.checkedint |
Checked integral types. |
std.digest |
Compute digests such as md5, sha1 and crc32. |
std.digest.crc |
Cyclic Redundancy Check (32-bit) implementation. |
std.digest.hmac |
Compute HMAC digests of arbitrary data. |
std.digest.md |
Compute MD5 hash of arbitrary data. |
std.digest.murmurhash |
Compute MurmurHash of arbitrary data. |
std.digest.ripemd |
Compute RIPEMD-160 hash of arbitrary data. |
std.digest.sha |
Compute SHA1 and SHA2 hashes of arbitrary data. |
Date & time | |
std.datetime |
Provides convenient access to date and time representations. |
core.time |
Implements low-level time primitives. |
Exception handling | |
std.exception |
Implements routines related to exceptions. |
core.exception |
Defines built-in exception types and low-level language hooks required by the compiler. |
External library bindings | |
etc.c.curl |
Interface to libcurl C library. |
etc.c.odbc.sql |
Interface to ODBC C library. |
etc.c.odbc.sqlext |
|
etc.c.odbc.sqltypes |
|
etc.c.odbc.sqlucode |
|
etc.c.sqlite3 |
Interface to SQLite C library. |
etc.c.zlib |
Interface to zlib C library. |
I/O & File system | |
std.file |
Manipulate files and directories. |
std.path |
Manipulate strings that represent filesystem paths. |
std.stdio |
Perform buffered I/O. |
Interoperability | |
core.stdc.complex core.stdc.ctype core.stdc.errno core.stdc.fenv core.stdc.float_ core.stdc.inttypes core.stdc.limits core.stdc.locale core.stdc.math core.stdc.signal core.stdc.stdarg core.stdc.stddef core.stdc.stdint core.stdc.stdio core.stdc.stdlib core.stdc.string core.stdc.tgmath core.stdc.time core.stdc.wchar_ core.stdc.wctype |
D bindings for standard C headers. These are mostly undocumented, as documentation for the functions these declarations provide bindings to can be found on external resources. |
Memory management | |
core.memory |
Control the built-in garbage collector. |
std.typecons |
Build scoped variables and reference-counted types. |
Metaprogramming | |
core.attribute |
Definitions of special attributes recognized by the compiler. |
core.demangle |
Convert mangled D symbol identifiers to source representation. |
std.demangle |
A simple wrapper around core.demangle. |
std.meta |
Construct and manipulate template argument lists (aka type lists). |
std.traits |
Extract information about types and symbols at compile time. |
std.typecons |
Construct new, useful general purpose types. |
Multitasking | |
std.concurrency |
Low level messaging API for threads. |
std.parallelism |
High level primitives for SMP parallelism. |
std.process |
Starting and manipulating processes. |
core.atomic |
Basic support for lock-free concurrent programming. |
core.sync.barrier |
Synchronize the progress of a group of threads. |
core.sync.condition |
Synchronized condition checking. |
core.sync.exception |
Base class for synchronization exceptions. |
core.sync.mutex |
Mutex for mutually exclusive access. |
core.sync.rwmutex |
Shared read access and mutually exclusive write access. |
core.sync.semaphore |
General use synchronization semaphore. |
core.thread |
Thread creation and management. |
Networking | |
std.socket |
Socket primitives. |
std.net.curl |
Networking client functionality as provided by libcurl. |
std.net.isemail |
Validates an email address according to RFCs 5321, 5322 and others. |
std.uri |
Encode and decode Uniform Resource Identifiers (URIs). |
std.uuid |
Universally-unique identifiers for resources in distributed systems. |
Numeric | |
std.bigint |
An arbitrary-precision integer type. |
std.complex |
A complex number type. |
std.math |
Elementary mathematical functions (powers, roots, trigonometry). |
std.mathspecial |
Families of transcendental functions. |
std.numeric |
Floating point numerics functions. |
std.random |
Pseudo-random number generators. |
core.checkedint |
Range-checking integral arithmetic primitives. |
core.math |
Built-in mathematical intrinsics. |
Paradigms | |
std.functional |
Functions that manipulate other functions. |
std.algorithm |
Generic algorithms for processing sequences. |
std.signals |
Signal-and-slots framework for event-driven programming. |
Runtime utilities | |
object |
Core language definitions. Automatically imported. |
std.getopt |
Parsing of command-line arguments. |
std.compiler |
Host compiler vendor string and language version. |
std.system |
Runtime environment, such as OS type and endianness. |
core.cpuid |
Capabilities of the CPU the program is running on. |
core.memory |
Control the built-in garbage collector. |
core.runtime |
Control and configure the D runtime. |
String manipulation | |
std.string |
Algorithms that work specifically with strings. |
std.array |
Manipulate builtin arrays. |
std.algorithm |
Generic algorithms for processing sequences. |
std.uni |
Fundamental Unicode algorithms and data structures. |
std.utf |
Encode and decode UTF-8, UTF-16 and UTF-32 strings. |
std.format |
Format data into strings. |
std.path |
Manipulate strings that represent filesystem paths. |
std.regex |
Regular expressions. |
std.ascii |
Routines specific to the ASCII subset of Unicode. |
std.encoding |
Handle and transcode between various text encodings. |
std.windows.charset |
Windows specific character set support. |
std.outbuffer |
Serialize data to ubyte arrays. |
Type manipulations | |
std.conv |
Convert types from one type to another. |
std.typecons |
Type constructors for scoped variables, ref counted types, etc. |
std.bitmanip |
High level bit level manipulation, bit arrays, bit fields. |
std.variant |
Discriminated unions and algebraic types. |
core.bitop |
Low level bit manipulation. |
Vector programming | |
core.simd |
SIMD intrinsics |
© 1999–2021 The D Language Foundation
Licensed under the Boost License 1.0.
https://dlang.org/phobos/index.html