Ddoc

$(P Phobos is the standard runtime library that comes with the D language
compiler.)

$(P 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.)

$(P 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.)

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

$(COMMENT
    $(LEADINGROW Undocumented modules (intentionally omitted).)
    $(TR
        $(TDNW
            $(MREF core,sync,config)$(BR)
            $(MREF std,container,util)$(BR)
            $(MREF std,regex,internal,backtracking)$(BR)
            $(MREF std,regex,internal,generator)$(BR)
            $(MREF std,regex,internal,ir)$(BR)
            $(MREF std,regex,internal,kickstart)$(BR)
            $(MREF std,regex,internal,parser)$(BR)
            $(MREF std,regex,internal,tests)$(BR)
            $(MREF std,regex,internal,thompson)$(BR)
        )
        $(TD
             Internal modules.
        )
    )
    $(TR
        $(TDNW
            $(MREF core,vararg)$(BR)
            $(MREF std,c,fenv)$(BR)
            $(MREF std,c,linux,linux)$(BR)
            $(MREF std,c,linux,socket)$(BR)
            $(MREF std,c,locale)$(BR)
            $(MREF std,c,math)$(BR)
            $(MREF std,c,process)$(BR)
            $(MREF std,c,stdarg)$(BR)
            $(MREF std,c,stddef)$(BR)
            $(MREF std,c,stdio)$(BR)
            $(MREF std,c,stdlib)$(BR)
            $(MREF std,c,string)$(BR)
            $(MREF std,c,time)$(BR)
            $(MREF std,c,wcharh)$(BR)
            $(MREF std,stdint)$(BR)
        )
        $(TDN
             Redirect modules.
        )
    )
    $(TR
        $(TDNW
            $(MREF std,mmfile)$(BR)
            $(MREF std,typetuple)$(BR)
        )
        $(TD
             Deprecated modules.
        )
    )
    $(TR
        $(TDNW
            $(MREF std,experimental,logger)$(BR)
            $(MREF std,experimental,logger,core)$(BR)
            $(MREF std,experimental,logger,filelogger)$(BR)
            $(MREF std,experimental,logger,multilogger)$(BR)
            $(MREF std,experimental,logger,nulllogger)$(BR)
        )
        $(TD
             Experimental modules.
        )
    )
)
)

Macros:
        TITLE=Phobos Runtime Library
        DDOC_BLANKLINE=
        _=
