1Ddoc
2
3$(P Phobos is the standard runtime library that comes with the D language
4compiler.)
5
6$(P Generally, the `std` namespace is used for the main modules in the
7Phobos standard library. The `etc` namespace is used for external C/C++
8library bindings. The `core` namespace is used for low-level D runtime
9functions.)
10
11$(P The following table is a quick reference guide for which Phobos modules to
12use for a given category of functionality. Note that some modules may appear in
13more than one category, as some Phobos modules are quite generic and can be
14applied in a variety of situations.)
15
16$(BOOKTABLE ,
17    $(TR
18        $(TH Modules)
19        $(TH Description)
20    )
21    $(LEADINGROW Algorithms & ranges)
22    $(TR
23        $(TDNW
24            $(MREF std,algorithm)$(BR)
25            $(MREF std,range)$(BR)
26            $(MREF std,range,primitives)$(BR)
27            $(MREF std,range,interfaces)$(BR)
28        )
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.
33        )
34    )
35    $(LEADINGROW Array manipulation)
36    $(TR
37        $(TDNW
38            $(MREF std,array)$(BR)
39            $(MREF std,algorithm)$(BR)
40        )
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
44            `std.algorithm`.
45        )
46    )
47    $(LEADINGROW Containers)
48    $(TR
49        $(TDNW
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)
55        )
56        $(TD See $(MREF_ALTTEXT std.container.*, std,container) for an
57            overview.
58        )
59    )
60    $(LEADINGROW Data formats)
61    $(TR
62        $(TDNW $(MREF std,base64))
63        $(TD Encoding / decoding Base64 format.)
64    )
65    $(TR
66        $(TDNW $(MREF std,csv))
67        $(TD Read Comma Separated Values and its variants from an input range of $(CODE dchar).)
68    )
69    $(TR
70        $(TDNW $(MREF std,json))
71        $(TD Read/write data in JSON format.)
72    )
73    $(TR
74        $(TDNW $(MREF std,xml))
75        $(TD Read/write data in XML format.)
76    )
77    $(TR
78        $(TDNW $(MREF std,zip))
79        $(TD Read/write data in the ZIP archive format.)
80    )
81    $(TR
82        $(TDNW $(MREF std,zlib))
83        $(TD Compress/decompress data using the zlib library.)
84    )
85    $(LEADINGROW Data integrity)
86    $(TR
87        $(TDNW $(MREF std,checkedint))
88        $(TD Checked integral types.)
89    )
90    $(TR
91        $(TDNW $(MREF std,digest))
92        $(TD Compute digests such as md5, sha1 and crc32.)
93    )
94    $(TR
95        $(TDNW $(MREF std,digest,crc))
96        $(TD Cyclic Redundancy Check (32-bit) implementation.)
97    )
98    $(TR
99        $(TDNW $(MREF std,digest,hmac))
100        $(TD Compute HMAC digests of arbitrary data.)
101    )
102    $(TR
103        $(TDNW $(MREF std,digest,md))
104        $(TD Compute MD5 hash of arbitrary data.)
105    )
106    $(TR
107        $(TDNW $(MREF std,digest,murmurhash))
108        $(TD Compute MurmurHash of arbitrary data.)
109    )
110    $(TR
111        $(TDNW $(MREF std,digest,ripemd))
112        $(TD Compute RIPEMD-160 hash of arbitrary data.)
113    )
114    $(TR
115        $(TDNW $(MREF std,digest,sha))
116        $(TD Compute SHA1 and SHA2 hashes of arbitrary data.)
117    )
118    $(LEADINGROW Date & time)
119    $(TR
120        $(TDNW $(MREF std,datetime))
121        $(TD Provides convenient access to date and time representations.)
122    )
123    $(TR
124        $(TDNW $(MREF core,time))
125        $(TD Implements low-level time primitives.)
126    )
127    $(LEADINGROW Exception handling)
128    $(TR
129        $(TDNW $(MREF std,exception))
130        $(TD Implements routines related to exceptions.)
131    )
132    $(TR
133        $(TDNW $(MREF core,exception))
134        $(TD Defines built-in exception types and low-level
135            language hooks required by the compiler.)
136    )
137    $(LEADINGROW External library bindings)
138    $(TR
139        $(TDNW $(MREF etc,c,curl))
140        $(TD Interface to libcurl C library.)
141    )
142    $(TR
143        $(TDNW $(MREF etc,c,odbc,sql))
144        $(TD Interface to ODBC C library.)
145    )
146    $(TR
147        $(TDNW $(MREF etc,c,odbc,sqlext))
148    )
149    $(TR
150        $(TDNW $(MREF etc,c,odbc,sqltypes))
151    )
152    $(TR
153        $(TDNW $(MREF etc,c,odbc,sqlucode))
154    )
155    $(TR
156        $(TDNW $(MREF etc,c,sqlite3))
157        $(TD Interface to SQLite C library.)
158    )
159    $(TR
160        $(TDNW $(MREF etc,c,zlib))
161        $(TD Interface to zlib C library.)
162    )
163    $(LEADINGROW I/O & File system)
164    $(TR
165        $(TDNW $(MREF std,file))
166        $(TD Manipulate files and directories.)
167    )
168    $(TR
169        $(TDNW $(MREF std,path))
170        $(TD Manipulate strings that represent filesystem paths.)
171    )
172    $(TR
173        $(TDNW $(MREF std,stdio))
174        $(TD Perform buffered I/O.)
175    )
176    $(LEADINGROW Interoperability)
177    $(TR
178        $(TDNW
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)
199        )
200        $(TD
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.
205        )
206    )
207    $(LEADINGROW Memory management)
208    $(TR
209        $(TDNW $(MREF core,memory))
210        $(TD Control the built-in garbage collector.)
211    )
212    $(TR
213        $(TDNW $(MREF std,typecons))
214        $(TD Build scoped variables and reference-counted types.)
215    )
216    $(LEADINGROW Metaprogramming)
217    $(TR
218        $(TDNW $(MREF core,attribute))
219        $(TD Definitions of special attributes recognized by the compiler.)
220    )
221    $(TR
222        $(TDNW $(MREF core,demangle))
223        $(TD Convert $(I mangled) D symbol identifiers to source representation.)
224    )
225    $(TR
226        $(TDNW $(MREF std,demangle))
227        $(TD A simple wrapper around core.demangle.)
228    )
229    $(TR
230        $(TDNW $(MREF std,meta))
231        $(TD Construct and manipulate template argument lists (aka type lists).)
232    )
233    $(TR
234        $(TDNW $(MREF std,traits))
235        $(TD Extract information about types and symbols at compile time.)
236    )
237    $(TR
238        $(TDNW $(MREF std,typecons))
239        $(TD Construct new, useful general purpose types.)
240    )
241    $(LEADINGROW Multitasking)
242    $(TR
243        $(TDNW $(MREF std,concurrency))
244        $(TD Low level messaging API for threads.)
245    )
246    $(TR
247        $(TDNW $(MREF std,parallelism))
248        $(TD High level primitives for SMP parallelism.)
249    )
250    $(TR
251        $(TDNW $(MREF std,process))
252        $(TD Starting and manipulating processes.)
253    )
254    $(TR
255        $(TDNW $(MREF core,atomic))
256        $(TD Basic support for lock-free concurrent programming.)
257    )
258    $(TR
259        $(TDNW $(MREF core,sync,barrier))
260        $(TD Synchronize the progress of a group of threads.)
261    )
262    $(TR
263        $(TDNW $(MREF core,sync,condition))
264        $(TD Synchronized condition checking.)
265    )
266    $(TR
267        $(TDNW $(MREF core,sync,exception))
268        $(TD Base class for synchronization exceptions.)
269    )
270    $(TR
271        $(TDNW $(MREF core,sync,mutex))
272        $(TD Mutex for mutually exclusive access.)
273    )
274    $(TR
275        $(TDNW $(MREF core,sync,rwmutex))
276        $(TD Shared read access and mutually exclusive write access.)
277    )
278    $(TR
279        $(TDNW $(MREF core,sync,semaphore))
280        $(TD General use synchronization semaphore.)
281    )
282    $(TR
283        $(TDNW $(MREF core,thread))
284        $(TD Thread creation and management.)
285    )
286    $(LEADINGROW Networking)
287    $(TR
288        $(TDNW $(MREF std,socket))
289        $(TD Socket primitives.)
290    )
291    $(TR
292        $(TDNW $(MREF std,net,curl))
293        $(TD Networking client functionality as provided by libcurl.)
294    )
295    $(TR
296        $(TDNW $(MREF std,net,isemail))
297        $(TD Validates an email address according to RFCs 5321, 5322 and others.)
298    )
299    $(TR
300        $(TDNW $(MREF std,uri))
301        $(TD Encode and decode Uniform Resource Identifiers (URIs).)
302    )
303    $(TR
304        $(TDNW $(MREF std,uuid))
305        $(TD Universally-unique identifiers for resources in distributed
306        systems.)
307    )
308    $(LEADINGROW Numeric)
309    $(TR
310        $(TDNW $(MREF std,bigint))
311        $(TD An arbitrary-precision integer type.)
312    )
313    $(TR
314        $(TDNW $(MREF std,complex))
315        $(TD A complex number type.)
316    )
317    $(TR
318        $(TDNW $(MREF std,math))
319        $(TD Elementary mathematical functions (powers, roots, trigonometry).)
320    )
321    $(TR
322        $(TDNW $(MREF std,mathspecial))
323        $(TD Families of transcendental functions.)
324    )
325    $(TR
326        $(TDNW $(MREF std,numeric))
327        $(TD Floating point numerics functions.)
328    )
329    $(TR
330        $(TDNW $(MREF std,random))
331        $(TD Pseudo-random number generators.)
332    )
333    $(TR
334        $(TDNW $(MREF core,checkedint))
335        $(TD Range-checking integral arithmetic primitives.)
336    )
337    $(TR
338        $(TDNW $(MREF core,math))
339        $(TD Built-in mathematical intrinsics.)
340    )
341    $(LEADINGROW Paradigms)
342    $(TR
343        $(TDNW $(MREF std,functional))
344        $(TD Functions that manipulate other functions.)
345    )
346    $(TR
347        $(TDNW $(MREF std,algorithm))
348        $(TD Generic algorithms for processing sequences.)
349    )
350    $(TR
351        $(TDNW $(MREF std,signals))
352        $(TD Signal-and-slots framework for event-driven programming.)
353    )
354    $(LEADINGROW Runtime utilities)
355    $(TR
356        $(TDNW $(MREF1 object))
357        $(TD Core language definitions. Automatically imported.)
358    )
359    $(TR
360        $(TDNW $(MREF std,getopt))
361        $(TD Parsing of command-line arguments.)
362    )
363    $(TR
364        $(TDNW $(MREF std,compiler))
365        $(TD Host compiler vendor string and language version.)
366    )
367    $(TR
368        $(TDNW $(MREF std,system))
369        $(TD Runtime environment, such as OS type and endianness.)
370    )
371    $(TR
372        $(TDNW $(MREF core,cpuid))
373        $(TD Capabilities of the CPU the program is running on.)
374    )
375    $(TR
376        $(TDNW $(MREF core,memory))
377        $(TD Control the built-in garbage collector.)
378    )
379    $(TR
380        $(TDNW $(MREF core,runtime))
381        $(TD Control and configure the D runtime.)
382    )
383    $(LEADINGROW String manipulation)
384    $(TR
385        $(TDNW $(MREF std,string))
386        $(TD Algorithms that work specifically with strings.)
387    )
388    $(TR
389        $(TDNW $(MREF std,array))
390        $(TD Manipulate builtin arrays.)
391    )
392    $(TR
393        $(TDNW $(MREF std,algorithm))
394        $(TD Generic algorithms for processing sequences.)
395    )
396    $(TR
397        $(TDNW $(MREF std,uni))
398        $(TD Fundamental Unicode algorithms and data structures.)
399    )
400    $(TR
401        $(TDNW $(MREF std,utf))
402        $(TD Encode and decode UTF-8, UTF-16 and UTF-32 strings.)
403    )
404    $(TR
405        $(TDNW $(MREF std,format))
406        $(TD Format data into strings.)
407    )
408    $(TR
409        $(TDNW $(MREF std,path))
410        $(TD Manipulate strings that represent filesystem paths.)
411    )
412    $(TR
413        $(TDNW $(MREF std,regex))
414        $(TD Regular expressions.)
415    )
416    $(TR
417        $(TDNW $(MREF std,ascii))
418        $(TD Routines specific to the ASCII subset of Unicode.)
419    )
420    $(TR
421        $(TDNW $(MREF std,encoding))
422        $(TD Handle and transcode between various text encodings.)
423    )
424    $(TR
425        $(TDNW $(MREF std,windows,charset))
426        $(TD Windows specific character set support.)
427    )
428    $(TR
429        $(TDNW $(MREF std,outbuffer))
430        $(TD Serialize data to $(CODE ubyte) arrays.)
431    )
432    $(LEADINGROW Type manipulations)
433    $(TR
434        $(TDNW $(MREF std,conv))
435        $(TD Convert types from one type to another.)
436    )
437    $(TR
438        $(TDNW $(MREF std,typecons))
439        $(TD Type constructors for scoped variables, ref counted types, etc.)
440    )
441    $(TR
442        $(TDNW $(MREF std,bitmanip))
443        $(TD High level bit level manipulation, bit arrays, bit fields.)
444    )
445    $(TR
446        $(TDNW $(MREF std,variant))
447        $(TD Dynamically-typed variable that can hold a value of any type.)
448    )
449    $(TR
450        $(TDNW $(MREF core,bitop))
451        $(TD Low level bit manipulation.)
452    )
453    $(TR
454        $(TDNW $(MREF std,sumtype))
455        $(TD Type-safe discriminated union.)
456    )
457    $(LEADINGROW Vector programming)
458    $(TR
459        $(TDNW $(MREF core,simd))
460        $(TD SIMD intrinsics)
461    )
462
463$(COMMENT
464    $(LEADINGROW Undocumented modules (intentionally omitted).)
465    $(TR
466        $(TDNW
467            $(MREF core,sync,config)$(BR)
468            $(MREF std,container,util)$(BR)
469            $(MREF std,regex,internal,backtracking)$(BR)
470            $(MREF std,regex,internal,generator)$(BR)
471            $(MREF std,regex,internal,ir)$(BR)
472            $(MREF std,regex,internal,kickstart)$(BR)
473            $(MREF std,regex,internal,parser)$(BR)
474            $(MREF std,regex,internal,tests)$(BR)
475            $(MREF std,regex,internal,thompson)$(BR)
476        )
477        $(TD
478             Internal modules.
479        )
480    )
481    $(TR
482        $(TDNW
483            $(MREF core,vararg)$(BR)
484            $(MREF std,c,fenv)$(BR)
485            $(MREF std,c,linux,linux)$(BR)
486            $(MREF std,c,linux,socket)$(BR)
487            $(MREF std,c,locale)$(BR)
488            $(MREF std,c,math)$(BR)
489            $(MREF std,c,process)$(BR)
490            $(MREF std,c,stdarg)$(BR)
491            $(MREF std,c,stddef)$(BR)
492            $(MREF std,c,stdio)$(BR)
493            $(MREF std,c,stdlib)$(BR)
494            $(MREF std,c,string)$(BR)
495            $(MREF std,c,time)$(BR)
496            $(MREF std,c,wcharh)$(BR)
497            $(MREF std,stdint)$(BR)
498        )
499        $(TDN
500             Redirect modules.
501        )
502    )
503    $(TR
504        $(TDNW
505            $(MREF std,mmfile)$(BR)
506            $(MREF std,typetuple)$(BR)
507        )
508        $(TD
509             Deprecated modules.
510        )
511    )
512    $(TR
513        $(TDNW
514            $(MREF std,experimental,logger)$(BR)
515            $(MREF std,experimental,logger,core)$(BR)
516            $(MREF std,experimental,logger,filelogger)$(BR)
517            $(MREF std,experimental,logger,multilogger)$(BR)
518            $(MREF std,experimental,logger,nulllogger)$(BR)
519        )
520        $(TD
521             Experimental modules.
522        )
523    )
524)
525)
526
527Macros:
528        TITLE=Phobos Runtime Library
529        DDOC_BLANKLINE=
530        _=
531