Ddoc

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

- The `std` namespace is used for the main modules in the
  Phobos standard library.
- The $(LREF etc) namespace is used for external C/C++ library bindings.
- The `core` namespace is mainly used for low-level D runtime functions.
- $(RELATIVE_LINK2 stdc, `core.stdc`) wraps the C standard library.
- $(RELATIVE_LINK2 stdcpp, `core.stdcpp`) wraps some of the C++ standard library.
- `core.sys` wraps OS headers.

$(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,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 $(LNAME2 etc, 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.)
    )
    $(TR
        $(TDNW $(MREF etc,linux,memoryerror))
        $(TD Handle memory errors on Linux.)
    )
    $(TR
        $(TDNW $(MREF etc,valgrind,valgrind))
        $(TD Interface to $(LINK2 https://valgrind.org, Valgrind) for dynamic analysis.)
    )
    $(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 $(LNAME2 stdc, 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.
        )
    )
    $(TR
        $(TDNW
            $(MREF core,stdcpp,allocator)$(BR)
            $(MREF core,stdcpp,array)$(BR)
            $(MREF core,stdcpp,exception)$(BR)
            $(MREF core,stdcpp,memory)$(BR)
            $(MREF core,stdcpp,new_)$(BR)
            $(MREF core,stdcpp,string)$(BR)
            $(MREF core,stdcpp,string_view)$(BR)
            $(MREF core,stdcpp,type_traits)$(BR)
            $(MREF core,stdcpp,typeinfo)$(BR)
            $(MREF core,stdcpp,utility)$(BR)
            $(MREF core,stdcpp,vector)$(BR)
            $(MREF core,stdcpp,xutility)$(BR)
        )
        $(TD
            Partial D bindings for $(LNAME2 stdcpp, standard C++) headers.$(BR)$(BR)
        )
    )
    $(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,int128)$(BR)
            $(MREF core,int128)
        )
        $(TD 128 bit-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)
    )
    $(LEADINGROW Logging)
    $(TR
        $(TDNW
            $(MREF std,logger)$(BR)
            $(MREF std,logger,core)$(BR)
            $(MREF std,logger,filelogger)$(BR)
            $(MREF std,logger,multilogger)$(BR)
            $(MREF std,logger,nulllogger)$(BR)
        )
        $(TD
             Logging.
        )
    )

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

Macros:
        TITLE=Phobos Runtime Library
        DDOC_BLANKLINE=
        _=
