3 $(P Phobos
is the standard runtime library that comes
with the D language
6 $(P Generally
, the
$(D std
) namespace
is used
for the main modules
in the
7 Phobos standard library
. The
$(D etc
) namespace
is used
for external C
/C
++
8 library bindings
. The
$(D core
) namespace
is used
for low
-level D runtime
11 $(P The following table
is a quick reference guide
for which Phobos modules to
12 use
for a given category of functionality
. Note that some modules may appear
in
13 more than one category
, as some Phobos modules are quite generic
and can be
14 applied
in a variety of situations
.)
21 $(LEADINGROW Algorithms
&
; ranges
)
24 $(MREF std
,algorithm
)$(BR
)
25 $(MREF std
,range
)$(BR
)
26 $(MREF std
,range
,primitives
)$(BR
)
27 $(MREF std
,range
,interfaces
)$(BR
)
29 $(TD Generic algorithms that work
with $(MREF_ALTTEXT ranges
, std
,range
)
30 of any type
, including strings
, arrays
, and other kinds of
31 sequentially
-accessed data
. Algorithms include searching
,
32 comparison
, iteration
, sorting
, set operations
, and mutation
.
35 $(LEADINGROW Array manipulation
)
38 $(MREF std
,array
)$(BR
)
39 $(MREF std
,algorithm
)$(BR
)
41 $(TD Convenient operations commonly used
with built
-in arrays
.
42 Note that many common array operations are subsets of more generic
43 algorithms that work
with arbitrary ranges
, so they are found
in
47 $(LEADINGROW Containers
)
50 $(MREF std
,container
,array
)$(BR
)
51 $(MREF std
,container
,binaryheap
)$(BR
)
52 $(MREF std
,container
,dlist
)$(BR
)
53 $(MREF std
,container
,rbtree
)$(BR
)
54 $(MREF std
,container
,slist
)$(BR
)
56 $(TD See
$(MREF_ALTTEXT std
.container
.*, std
,container
) for an
60 $(LEADINGROW Data formats
)
62 $(TDNW
$(MREF std
,base64
))
63 $(TD Encoding
/ decoding Base64 format
.)
66 $(TDNW
$(MREF std
,csv
))
67 $(TD Read Comma Separated Values
and its variants from an input range of
$(CODE
dchar).)
70 $(TDNW
$(MREF std
,json
))
71 $(TD Read
/write data
in JSON format
.)
74 $(TDNW
$(MREF std
,xml
))
75 $(TD Read
/write data
in XML format
.)
78 $(TDNW
$(MREF std
,zip
))
79 $(TD Read
/write data
in the ZIP archive format
.)
82 $(TDNW
$(MREF std
,zlib
))
83 $(TD Compress
/decompress data using the zlib library
.)
85 $(LEADINGROW Data integrity
)
87 $(TDNW
$(MREF std
,experimental
,checkedint
))
88 $(TD Checked integral types
.)
91 $(TDNW
$(MREF std
,digest
,crc
))
92 $(TD Cyclic Redundancy
Check (32-bit
) implementation
.)
95 $(TDNW
$(MREF std
,digest
,digest
))
96 $(TD Compute digests such as md5
, sha1
and crc32
.)
99 $(TDNW
$(MREF std
,digest
,hmac
))
100 $(TD Compute HMAC digests of arbitrary data
.)
103 $(TDNW
$(MREF std
,digest
,md
))
104 $(TD Compute MD5 hash of arbitrary data
.)
107 $(TDNW
$(MREF std
,digest
,murmurhash
))
108 $(TD Compute MurmurHash of arbitrary data
.)
111 $(TDNW
$(MREF std
,digest
,ripemd
))
112 $(TD Compute RIPEMD
-160 hash of arbitrary data
.)
115 $(TDNW
$(MREF std
,digest
,sha
))
116 $(TD Compute SHA1
and SHA2 hashes of arbitrary data
.)
118 $(LEADINGROW Date
&
; time
)
120 $(TDNW
$(MREF std
,datetime
))
121 $(TD Provides convenient access to date
and time representations
.)
124 $(TDNW
$(MREF core
,time
))
125 $(TD Implements low
-level time primitives
.)
127 $(LEADINGROW Exception handling
)
129 $(TDNW
$(MREF std
,exception
))
130 $(TD Implements routines related to exceptions
.)
133 $(TDNW
$(MREF core
,exception
))
134 $(TD Defines built
-in exception types
and low
-level
135 language hooks required by the compiler
.)
137 $(LEADINGROW External library bindings
)
139 $(TDNW
$(MREF etc
,c
,curl
))
140 $(TD Interface to libcurl C library
.)
143 $(TDNW
$(MREF etc
,c
,odbc
,sql
))
144 $(TD Interface to ODBC C library
.)
147 $(TDNW
$(MREF etc
,c
,odbc
,sqlext
))
150 $(TDNW
$(MREF etc
,c
,odbc
,sqltypes
))
153 $(TDNW
$(MREF etc
,c
,odbc
,sqlucode
))
156 $(TDNW
$(MREF etc
,c
,sqlite3
))
157 $(TD Interface to SQLite C library
.)
160 $(TDNW
$(MREF etc
,c
,zlib
))
161 $(TD Interface to zlib C library
.)
163 $(LEADINGROW I
/O
&
; File system
)
165 $(TDNW
$(MREF std
,file
))
166 $(TD Manipulate files
and directories
.)
169 $(TDNW
$(MREF std
,path
))
170 $(TD Manipulate strings that represent filesystem paths
.)
173 $(TDNW
$(MREF std
,stdio
))
174 $(TD Perform buffered I
/O
.)
176 $(LEADINGROW Interoperability
)
179 $(MREF core
,stdc
,complex
)$(BR
)
180 $(MREF core
,stdc
,ctype
)$(BR
)
181 $(MREF core
,stdc
,errno
)$(BR
)
182 $(MREF core
,stdc
,fenv
)$(BR
)
183 $(MREF core
,stdc
,float_
)$(BR
)
184 $(MREF core
,stdc
,inttypes
)$(BR
)
185 $(MREF core
,stdc
,limits
)$(BR
)
186 $(MREF core
,stdc
,locale
)$(BR
)
187 $(MREF core
,stdc
,math
)$(BR
)
188 $(MREF core
,stdc
,signal
)$(BR
)
189 $(MREF core
,stdc
,stdarg
)$(BR
)
190 $(MREF core
,stdc
,stddef
)$(BR
)
191 $(MREF core
,stdc
,stdint
)$(BR
)
192 $(MREF core
,stdc
,stdio
)$(BR
)
193 $(MREF core
,stdc
,stdlib
)$(BR
)
194 $(MREF core
,stdc
,string
)$(BR
)
195 $(MREF core
,stdc
,tgmath
)$(BR
)
196 $(MREF core
,stdc
,time
)$(BR
)
197 $(MREF core
,stdc
,wchar_
)$(BR
)
198 $(MREF core
,stdc
,wctype
)$(BR
)
201 D bindings
for standard C headers
.$(BR
)$(BR
)
202 These are mostly undocumented
, as documentation
203 for the functions these declarations provide
204 bindings to can be found on external resources
.
207 $(LEADINGROW Memory management
)
209 $(TDNW
$(MREF core
,memory
))
210 $(TD Control the built
-in garbage collector
.)
213 $(TDNW
$(MREF std
,typecons
))
214 $(TD Build scoped variables
and reference
-counted types
.)
216 $(LEADINGROW Metaprogramming
)
218 $(TDNW
$(MREF core
,attribute
))
219 $(TD Definitions of special attributes recognized by the compiler
.)
222 $(TDNW
$(MREF core
,demangle
))
223 $(TD Convert
$(I mangled
) D symbol identifiers to source representation
.)
226 $(TDNW
$(MREF std
,demangle
))
227 $(TD A simple wrapper around core
.demangle
.)
230 $(TDNW
$(MREF std
,meta
))
231 $(TD Construct
and manipulate
template argument
lists (aka type lists
).)
234 $(TDNW
$(MREF std
,traits
))
235 $(TD Extract information about types
and symbols at compile time
.)
238 $(TDNW
$(MREF std
,typecons
))
239 $(TD Construct
new, useful general purpose types
.)
241 $(LEADINGROW Multitasking
)
243 $(TDNW
$(MREF std
,concurrency
))
244 $(TD Low level messaging API
for threads
.)
247 $(TDNW
$(MREF std
,parallelism
))
248 $(TD High level primitives
for SMP parallelism
.)
251 $(TDNW
$(MREF std
,process
))
252 $(TD Starting
and manipulating processes
.)
255 $(TDNW
$(MREF core
,atomic
))
256 $(TD Basic support
for lock-free concurrent programming
.)
259 $(TDNW
$(MREF core
,sync
,barrier
))
260 $(TD Synchronize the progress of a group of threads
.)
263 $(TDNW
$(MREF core
,sync
,condition
))
264 $(TD Synchronized condition checking
.)
267 $(TDNW
$(MREF core
,sync
,exception
))
268 $(TD Base
class for synchronization exceptions
.)
271 $(TDNW
$(MREF core
,sync
,mutex
))
272 $(TD Mutex
for mutually exclusive access
.)
275 $(TDNW
$(MREF core
,sync
,rwmutex
))
276 $(TD Shared read access
and mutually exclusive write access
.)
279 $(TDNW
$(MREF core
,sync
,semaphore
))
280 $(TD General use synchronization semaphore
.)
283 $(TDNW
$(MREF core
,thread
))
284 $(TD Thread creation
and management
.)
286 $(LEADINGROW Networking
)
288 $(TDNW
$(MREF std
,socket
))
289 $(TD Socket primitives
.)
292 $(TDNW
$(MREF std
,net
,curl
))
293 $(TD Networking client functionality as provided by libcurl
.)
296 $(TDNW
$(MREF std
,net
,isemail
))
297 $(TD Validates an email address according to RFCs
5321, 5322 and others
.)
300 $(TDNW
$(MREF std
,uri
))
301 $(TD Encode
and decode Uniform Resource
Identifiers (URIs
).)
304 $(TDNW
$(MREF std
,uuid
))
305 $(TD Universally
-unique identifiers
for resources
in distributed
308 $(LEADINGROW Numeric
)
310 $(TDNW
$(MREF std
,bigint
))
311 $(TD An arbitrary
-precision integer type
.)
314 $(TDNW
$(MREF std
,complex
))
315 $(TD A complex number type
.)
318 $(TDNW
$(MREF std
,math
))
319 $(TD Elementary mathematical
functions (powers
, roots
, trigonometry
).)
322 $(TDNW
$(MREF std
,mathspecial
))
323 $(TD Families of transcendental functions
.)
326 $(TDNW
$(MREF std
,numeric
))
327 $(TD Floating point numerics functions
.)
330 $(TDNW
$(MREF std
,random
))
331 $(TD Pseudo
-random number generators
.)
334 $(TDNW
$(MREF core
,checkedint
))
335 $(TD Range
-checking integral arithmetic primitives
.)
338 $(TDNW
$(MREF core
,math
))
339 $(TD Built
-in mathematical intrinsics
.)
341 $(LEADINGROW Paradigms
)
343 $(TDNW
$(MREF std
,functional
))
344 $(TD Functions that manipulate other functions
.)
347 $(TDNW
$(MREF std
,algorithm
))
348 $(TD Generic algorithms
for processing sequences
.)
351 $(TDNW
$(MREF std
,signals
))
352 $(TD Signal
-and-slots framework
for event
-driven programming
.)
354 $(LEADINGROW Runtime utilities
)
356 $(TDNW
$(MREF1 object
))
357 $(TD Core language definitions
. Automatically imported
.)
360 $(TDNW
$(MREF std
,getopt
))
361 $(TD Parsing of command
-line arguments
.)
364 $(TDNW
$(MREF std
,compiler
))
365 $(TD Host compiler vendor string
and language
version.)
368 $(TDNW
$(MREF std
,system
))
369 $(TD Runtime environment
, such as OS type
and endianness
.)
372 $(TDNW
$(MREF core
,cpuid))
373 $(TD Capabilities of the CPU the program
is running on
.)
376 $(TDNW
$(MREF core
,memory
))
377 $(TD Control the built
-in garbage collector
.)
380 $(TDNW
$(MREF core
,runtime
))
381 $(TD Control
and configure the D runtime
.)
383 $(LEADINGROW String manipulation
)
385 $(TDNW
$(MREF std
,string
))
386 $(TD Algorithms that work specifically
with strings
.)
389 $(TDNW
$(MREF std
,array
))
390 $(TD Manipulate builtin arrays
.)
393 $(TDNW
$(MREF std
,algorithm
))
394 $(TD Generic algorithms
for processing sequences
.)
397 $(TDNW
$(MREF std
,uni
))
398 $(TD Fundamental Unicode algorithms
and data structures
.)
401 $(TDNW
$(MREF std
,utf
))
402 $(TD Encode
and decode UTF
-8, UTF
-16 and UTF
-32 strings
.)
405 $(TDNW
$(MREF std
,format
))
406 $(TD Format data
into strings
.)
409 $(TDNW
$(MREF std
,path
))
410 $(TD Manipulate strings that represent filesystem paths
.)
413 $(TDNW
$(MREF std
,regex
))
414 $(TD Regular expressions
.)
417 $(TDNW
$(MREF std
,ascii
))
418 $(TD Routines specific to the ASCII subset of Unicode
.)
421 $(TDNW
$(MREF std
,encoding
))
422 $(TD Handle
and transcode between various text encodings
.)
425 $(TDNW
$(MREF std
,windows
,charset
))
426 $(TD Windows specific character set support
.)
429 $(TDNW
$(MREF std
,outbuffer
))
430 $(TD Serialize data to
$(CODE
ubyte) arrays
.)
432 $(LEADINGROW Type manipulations
)
434 $(TDNW
$(MREF std
,conv
))
435 $(TD Convert types from one type to another
.)
438 $(TDNW
$(MREF std
,typecons
))
439 $(TD Type constructors
for scoped variables
, ref counted types
, etc
.)
442 $(TDNW
$(MREF std
,bitmanip
))
443 $(TD High level bit level manipulation
, bit arrays
, bit fields
.)
446 $(TDNW
$(MREF std
,variant
))
447 $(TD Discriminated unions
and algebraic types
.)
450 $(TDNW
$(MREF core
,bitop
))
451 $(TD Low level bit manipulation
.)
453 $(LEADINGROW Vector programming
)
455 $(TDNW
$(MREF core
,simd
))
456 $(TD SIMD intrinsics
)
460 $(LEADINGROW Undocumented
modules (intentionally omitted
).)
463 $(MREF core
,sync
,config
)$(BR
)
464 $(MREF std
,container
,util
)$(BR
)
465 $(MREF std
,regex
,internal
,backtracking
)$(BR
)
466 $(MREF std
,regex
,internal
,generator
)$(BR
)
467 $(MREF std
,regex
,internal
,ir
)$(BR
)
468 $(MREF std
,regex
,internal
,kickstart
)$(BR
)
469 $(MREF std
,regex
,internal
,parser
)$(BR
)
470 $(MREF std
,regex
,internal
,tests
)$(BR
)
471 $(MREF std
,regex
,internal
,thompson
)$(BR
)
479 $(MREF core
,vararg
)$(BR
)
480 $(MREF std
,c
,fenv
)$(BR
)
481 $(MREF std
,c
,linux
,linux
)$(BR
)
482 $(MREF std
,c
,linux
,socket
)$(BR
)
483 $(MREF std
,c
,locale
)$(BR
)
484 $(MREF std
,c
,math
)$(BR
)
485 $(MREF std
,c
,process
)$(BR
)
486 $(MREF std
,c
,stdarg
)$(BR
)
487 $(MREF std
,c
,stddef
)$(BR
)
488 $(MREF std
,c
,stdio
)$(BR
)
489 $(MREF std
,c
,stdlib
)$(BR
)
490 $(MREF std
,c
,string
)$(BR
)
491 $(MREF std
,c
,time
)$(BR
)
492 $(MREF std
,c
,wcharh
)$(BR
)
493 $(MREF std
,stdint
)$(BR
)
501 $(MREF std
,mmfile
)$(BR
)
502 $(MREF std
,typetuple
)$(BR
)
510 $(MREF std
,experimental
,logger
)$(BR
)
511 $(MREF std
,experimental
,logger
,core
)$(BR
)
512 $(MREF std
,experimental
,logger
,filelogger
)$(BR
)
513 $(MREF std
,experimental
,logger
,multilogger
)$(BR
)
514 $(MREF std
,experimental
,logger
,nulllogger
)$(BR
)
517 Experimental modules
.
524 TITLE
=Phobos Runtime Library