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