1 Ddoc
2 
3 $(P Phobos is the standard runtime library that comes with the D language
4 compiler.)
5 
6 $(P Generally, the `std` namespace is used for the main modules in the
7 Phobos standard library. The `etc` namespace is used for external C/C++
8 library bindings. The `core` namespace is used for low-level D runtime
9 functions.)
10 
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.)
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,experimental,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 
527 Macros:
528         TITLE=Phobos Runtime Library
529         DDOC_BLANKLINE=
530         _=
531