123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343 |
- <?xml version="1.0" encoding="utf-8" ?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <!-- This file is generated by Nim. -->
- <html xmlns="https://www.w3.org/1999/xhtml" xml:lang="en" lang="en" data-theme="auto">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Nim Standard Library</title>
- <!-- Google fonts -->
- <link href='https://fonts.googleapis.com/css?family=Lato:400,600,900' rel='stylesheet' type='text/css'/>
- <link href='https://fonts.googleapis.com/css?family=Source+Code+Pro:400,500,600' rel='stylesheet' type='text/css'/>
- <!-- Favicon -->
- <link rel="shortcut icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAUAAAAF////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAIAAABbAAAAlQAAAKIAAACbAAAAmwAAAKIAAACVAAAAWwAAAAL///8A////AP///wD///8A////AAAAABQAAADAAAAAYwAAAA3///8A////AP///wD///8AAAAADQAAAGMAAADAAAAAFP///wD///8A////AP///wAAAACdAAAAOv///wD///8A////AP///wD///8A////AP///wD///8AAAAAOgAAAJ3///8A////AP///wAAAAAnAAAAcP///wAAAAAoAAAASv///wD///8A////AP///wAAAABKAAAAKP///wAAAABwAAAAJ////wD///8AAAAAgQAAABwAAACIAAAAkAAAAJMAAACtAAAAFQAAABUAAACtAAAAkwAAAJAAAACIAAAAHAAAAIH///8A////AAAAAKQAAACrAAAAaP///wD///8AAAAARQAAANIAAADSAAAARf///wD///8AAAAAaAAAAKsAAACk////AAAAADMAAACcAAAAnQAAABj///8A////AP///wAAAAAYAAAAGP///wD///8A////AAAAABgAAACdAAAAnAAAADMAAAB1AAAAwwAAAP8AAADpAAAAsQAAAE4AAAAb////AP///wAAAAAbAAAATgAAALEAAADpAAAA/wAAAMMAAAB1AAAAtwAAAOkAAAD/AAAA/wAAAP8AAADvAAAA3gAAAN4AAADeAAAA3gAAAO8AAAD/AAAA/wAAAP8AAADpAAAAtwAAAGUAAAA/AAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADfAAAAPwAAAGX///8A////AAAAAEgAAADtAAAAvwAAAL0AAADGAAAA7wAAAO8AAADGAAAAvQAAAL8AAADtAAAASP///wD///8A////AP///wD///8AAAAAO////wD///8A////AAAAAIcAAACH////AP///wD///8AAAAAO////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A//8AAP//AAD4HwAA7/cAAN/7AAD//wAAoYUAAJ55AACf+QAAh+EAAAAAAADAAwAA4AcAAP5/AAD//wAA//8AAA=="/>
- <link rel="icon" type="image/png" sizes="32x32" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4QQQEwksSS9ZWwAAAk1JREFUWMPtll2ITVEUx39nn/O7Y5qR8f05wtCUUr6ZIS++8pEnkZInPImneaCQ5METNdOkeFBKUhMPRIkHKfEuUZSUlGlKPN2TrgfncpvmnntnmlEyq1Z7t89/rf9a6+y99oZxGZf/XeIq61EdtgKXgdXA0xrYAvBjOIF1AI9zvjcC74BSpndrJPkBWDScTF8Aa4E3wDlgHbASaANmVqlcCnwHvgDvgVfAJ+AikAAvgfVZwLnSVZHZaOuKoQi3ZOMi4NkYkpe1p4J7A8BpYAD49hfIy/oqG0+hLomiKP2L5L+1ubn5115S+3OAn4EnwBlgMzCjyt6ZAnQCJ4A7wOs88iRJHvw50HoujuPBoCKwHWiosy8MdfZnAdcHk8dxXFJ3VQbQlCTJvRBCGdRbD4M6uc5glpY3eAihpN5S5w12diSEcCCEcKUO4ljdr15T76ur1FDDLIQQ3qv71EdDOe3Kxj3leRXyk+pxdWnFWod6Wt2bY3de3aSuUHcPBVimHs7mK9WrmeOF6lR1o9qnzskh2ar2qm1qizpfXaPeVGdlmGN5pb09qMxz1Xb1kLqgzn1RyH7JUXW52lr5e/Kqi9qpto7V1atuUzfnARrV7jEib1T76gG2qxdGmXyiekkt1GswPTtek0aBfJp6YySGBfWg2tPQ0FAYgf1stUfdmdcjarbYJEniKIq6gY/Aw+zWHAC+p2labGpqiorFYgGYCEzN7oQdQClN07O1/EfDyGgC0ALMBdYAi4FyK+4H3gLPsxfR1zRNi+NP7nH5J+QntnXe5B5mpfQAAAAASUVORK5CYII=">
- <!-- CSS -->
- <link rel="stylesheet" type="text/css" href="nimdoc.out.css?v=2.3.1">
- <!-- JS -->
- <script type="text/javascript" src="dochack.js?v=2.3.1"></script>
- </head>
- <body>
- <div class="document" id="documentId">
- <div class="container">
- <h1 class="title">Nim Standard Library</h1>
- <div class="row">
- <div class="three columns">
- <div class="theme-select-wrapper">
- <label for="theme-select">Theme: </label>
- <select id="theme-select" onchange="setTheme(this.value)">
- <option value="auto">🌗 Match OS</option>
- <option value="dark">🌑 Dark</option>
- <option value="light">🌕 Light</option>
- </select>
- </div>
- <div id="global-links">
- <ul class="simple-boot">
- <li><a href="manual.html">Manual</a></li>
- <li><a href="lib.html">Standard library</a></li>
- <li> <a id="indexLink" href="theindex.html">Index</a></li>
- <li><a href="compiler/theindex.html">Compiler docs</a></li>
- <li><a href="https://nim-lang.github.io/fusion/theindex.html">Fusion docs</a></li>
- <li><a href="https://nim-lang.github.io/Nim/">devel</a>, <a href="https://nim-lang.org/documentation.html">stable</a></li>
- </ul>
- </div>
- <div id="searchInputDiv">
- Search: <input type="search" id="searchInput"
- oninput="search()" />
- </div>
- <div class="search-groupby">
- Group by:
- <select onchange="groupBy(this.value)">
- <option value="section">Section</option>
- <option value="type">Type</option>
- </select>
- </div>
- <ul class="simple simple-toc" id="toc-list">
- <li><a class="reference" id="nimble_toc" href="#nimble">Nimble</a></li>
- <li><a class="reference" id="pure-libraries_toc" href="#pure-libraries">Pure libraries</a></li>
- <ul class="simple"><li><a class="reference" id="pure-libraries-automatic-imports_toc" href="#pure-libraries-automatic-imports">Automatic imports</a></li>
- <li><a class="reference" id="pure-libraries-core_toc" href="#pure-libraries-core">Core</a></li>
- <li><a class="reference" id="pure-libraries-algorithms_toc" href="#pure-libraries-algorithms">Algorithms</a></li>
- <li><a class="reference" id="pure-libraries-collections_toc" href="#pure-libraries-collections">Collections</a></li>
- <li><a class="reference" id="pure-libraries-string-handling_toc" href="#pure-libraries-string-handling">String handling</a></li>
- <li><a class="reference" id="pure-libraries-time-handling_toc" href="#pure-libraries-time-handling">Time handling</a></li>
- <li><a class="reference" id="pure-libraries-generic-operating-system-services_toc" href="#pure-libraries-generic-operating-system-services">Generic Operating System Services</a></li>
- <li><a class="reference" id="pure-libraries-math-libraries_toc" href="#pure-libraries-math-libraries">Math libraries</a></li>
- <li><a class="reference" id="pure-libraries-internet-protocols-and-support_toc" href="#pure-libraries-internet-protocols-and-support">Internet Protocols and Support</a></li>
- <li><a class="reference" id="pure-libraries-threading_toc" href="#pure-libraries-threading">Threading</a></li>
- <li><a class="reference" id="pure-libraries-parsers_toc" href="#pure-libraries-parsers">Parsers</a></li>
- <li><a class="reference" id="pure-libraries-docutils_toc" href="#pure-libraries-docutils">Docutils</a></li>
- <li><a class="reference" id="pure-libraries-xml-processing_toc" href="#pure-libraries-xml-processing">XML Processing</a></li>
- <li><a class="reference" id="pure-libraries-generators_toc" href="#pure-libraries-generators">Generators</a></li>
- <li><a class="reference" id="pure-libraries-hashing_toc" href="#pure-libraries-hashing">Hashing</a></li>
- <li><a class="reference" id="pure-libraries-serialization_toc" href="#pure-libraries-serialization">Serialization</a></li>
- <li><a class="reference" id="pure-libraries-miscellaneous_toc" href="#pure-libraries-miscellaneous">Miscellaneous</a></li>
- <li><a class="reference" id="pure-libraries-modules-for-the-javascript-backend_toc" href="#pure-libraries-modules-for-the-javascript-backend">Modules for the JavaScript backend</a></li>
- </ul><li><a class="reference" id="impure-libraries_toc" href="#impure-libraries">Impure libraries</a></li>
- <ul class="simple"><li><a class="reference" id="impure-libraries-regular-expressions_toc" href="#impure-libraries-regular-expressions">Regular expressions</a></li>
- <li><a class="reference" id="impure-libraries-database-support_toc" href="#impure-libraries-database-support">Database support</a></li>
- <li><a class="reference" id="impure-libraries-generic-operating-system-services_toc" href="#impure-libraries-generic-operating-system-services">Generic Operating System Services</a></li>
- </ul><li><a class="reference" id="wrappers_toc" href="#wrappers">Wrappers</a></li>
- <ul class="simple"><li><a class="reference" id="wrappers-windowsminusspecific_toc" href="#wrappers-windowsminusspecific">Windows-specific</a></li>
- <li><a class="reference" id="wrappers-unix-specific_toc" href="#wrappers-unix-specific">UNIX specific</a></li>
- <li><a class="reference" id="wrappers-regular-expressions_toc" href="#wrappers-regular-expressions">Regular expressions</a></li>
- <li><a class="reference" id="wrappers-database-support_toc" href="#wrappers-database-support">Database support</a></li>
- <li><a class="reference" id="wrappers-network-programming-and-internet-protocols_toc" href="#wrappers-network-programming-and-internet-protocols">Network Programming and Internet Protocols</a></li>
- </ul>
- </ul>
- </div>
- <div class="nine columns" id="content">
- <a href="https://github.com/nim-lang/Nim/tree/devel/doc/lib.md#L1" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/doc/lib.md#L1" class="link-seesrc" target="_blank" >Edit</a>
- <div id="tocRoot"></div>
-
- <p class="module-desc"><table class="docinfo" frame="void" rules="none"><col class="docinfo-name" /><col class="docinfo-content" /><tbody valign="top"><tr><th class="docinfo-name">Author:</th><td>Andreas Rumpf</td></tr>
- <tr><th class="docinfo-name">Version:</th><td>2.3.1</td></tr>
- </tbody></table><p>Nim's library is divided into <em>pure libraries</em>, <em>impure libraries</em>, and <em>wrappers</em>.</p>
- <p>Pure libraries do not depend on any external <tt class="docutils literal"><span class="pre">*.dll</span></tt> or <tt class="docutils literal"><span class="pre">lib*.so</span></tt> binary while impure libraries do. A wrapper is an impure library that is a very low-level interface to a C library.</p>
- <p>Read <a class="reference external" href="apis.html">this document</a> for a quick overview of the API design.</p>
- <h1><a class="toc-backref" id="nimble" href="#nimble">Nimble</a></h1><p>Nim's standard library only covers the basics, check out <a class="reference external" href="https://nimble.directory/">https://nimble.directory/</a> for a list of 3rd party packages.</p>
- <h1><a class="toc-backref" id="pure-libraries" href="#pure-libraries">Pure libraries</a></h1>
- <h2><a class="toc-backref" id="pure-libraries-automatic-imports" href="#pure-libraries-automatic-imports">Automatic imports</a></h2><ul class="simple"><li><a class="reference external" href="system.html">system</a> Basic procs and operators that every program needs. It also provides IO facilities for reading and writing text and binary files. It is imported implicitly by the compiler. Do not import it directly. It relies on compiler magic to work.</li>
- </ul>
- <h2><a class="toc-backref" id="pure-libraries-core" href="#pure-libraries-core">Core</a></h2><ul class="simple"><li><a class="reference external" href="atomics.html">atomics</a> Types and operations for atomic operations and lockless algorithms.</li>
- <li><a class="reference external" href="bitops.html">bitops</a> Provides a series of low-level methods for bit manipulation.</li>
- <li><a class="reference external" href="compilesettings.html">compilesettings</a> Querying the compiler about diverse configuration settings from code.</li>
- <li><a class="reference external" href="cpuinfo.html">cpuinfo</a> Procs to determine the number of CPUs / cores.</li>
- <li><a class="reference external" href="effecttraits.html">effecttraits</a> Access to the inferred .raises effects for Nim's macro system.</li>
- <li><a class="reference external" href="endians.html">endians</a> Helpers that deal with different byte orders.</li>
- <li><a class="reference external" href="locks.html">locks</a> Locks and condition variables for Nim.</li>
- <li><a class="reference external" href="macrocache.html">macrocache</a> Provides an API for macros to collect compile-time information across modules.</li>
- <li><a class="reference external" href="macros.html">macros</a> Contains the AST API and documentation of Nim for writing macros.</li>
- <li><a class="reference external" href="rlocks.html">rlocks</a> Reentrant locks for Nim.</li>
- <li><a class="reference external" href="typeinfo.html">typeinfo</a> Provides (unsafe) access to Nim's run-time type information.</li>
- <li><a class="reference external" href="typetraits.html">typetraits</a> Compile-time reflection procs for working with types.</li>
- <li><a class="reference external" href="volatile.html">volatile</a> Code for generating volatile loads and stores, which are useful in embedded and systems programming.</li>
- </ul>
- <h2><a class="toc-backref" id="pure-libraries-algorithms" href="#pure-libraries-algorithms">Algorithms</a></h2><ul class="simple"><li><a class="reference external" href="algorithm.html">algorithm</a> Some common generic algorithms like sort or binary search.</li>
- <li><a class="reference external" href="enumutils.html">enumutils</a> Additional functionality for the built-in <tt class="docutils literal"><span class="pre"><span class="Keyword">enum</span></span></tt> type.</li>
- <li><a class="reference external" href="sequtils.html">sequtils</a> Operations for the built-in <tt class="docutils literal"><span class="pre"><span class="Identifier">seq</span></span></tt> type which were inspired by functional programming languages.</li>
- <li><a class="reference external" href="setutils.html">setutils</a> Additional functionality for the built-in <tt class="docutils literal"><span class="pre"><span class="Identifier">set</span></span></tt> type.</li>
- </ul>
- <h2><a class="toc-backref" id="pure-libraries-collections" href="#pure-libraries-collections">Collections</a></h2><ul class="simple"><li><a class="reference external" href="critbits.html">critbits</a> A <em>crit bit tree</em> which is an efficient container for a sorted set of strings, or a sorted mapping of strings.</li>
- <li><a class="reference external" href="deques.html">deques</a> Implementation of a double-ended queue. The underlying implementation uses a <tt class="docutils literal"><span class="pre"><span class="Identifier">seq</span></span></tt>.</li>
- <li><a class="reference external" href="heapqueue.html">heapqueue</a> Implementation of a binary heap data structure that can be used as a priority queue.</li>
- <li><a class="reference external" href="intsets.html">intsets</a> Efficient implementation of a set of ints as a sparse bit set.</li>
- <li><a class="reference external" href="lists.html">lists</a> Nim linked list support. Contains singly and doubly linked lists and circular lists ("rings").</li>
- <li><a class="reference external" href="options.html">options</a> The option type encapsulates an optional value.</li>
- <li><a class="reference external" href="packedsets.html">packedsets</a> Efficient implementation of a set of ordinals as a sparse bit set.</li>
- <li><a class="reference external" href="ropes.html">ropes</a> A <em>rope</em> data type. Ropes can represent very long strings efficiently; in particular, concatenation is done in O(1) instead of O(n).</li>
- <li><a class="reference external" href="sets.html">sets</a> Nim hash set support.</li>
- <li><a class="reference external" href="strtabs.html">strtabs</a> The <tt class="docutils literal"><span class="pre"><span class="Identifier">strtabs</span></span></tt> module implements an efficient hash table that is a mapping from strings to strings. Supports a case-sensitive, case-insensitive and style-insensitive modes.</li>
- <li><a class="reference external" href="tables.html">tables</a> Nim hash table support. Contains tables, ordered tables, and count tables.</li>
- </ul>
- <h2><a class="toc-backref" id="pure-libraries-string-handling" href="#pure-libraries-string-handling">String handling</a></h2><ul class="simple"><li><a class="reference external" href="cstrutils.html">cstrutils</a> Utilities for <tt class="docutils literal"><span class="pre"><span class="Identifier">cstring</span></span></tt> handling.</li>
- <li><a class="reference external" href="editdistance.html">editdistance</a> An algorithm to compute the edit distance between two Unicode strings.</li>
- <li><a class="reference external" href="encodings.html">encodings</a> Converts between different character encodings. On UNIX, this uses the <tt class="docutils literal"><span class="pre"><span class="Identifier">iconv</span></span></tt> library, on Windows the Windows API.</li>
- <li><a class="reference external" href="formatfloat.html">formatfloat</a> Formatting floats as strings.</li>
- <li><a class="reference external" href="objectdollar.html">objectdollar</a> A generic <tt class="docutils literal"><span class="pre"><span class="Operator">$</span></span></tt> operator to convert objects to strings.</li>
- <li><a class="reference external" href="punycode.html">punycode</a> Implements a representation of Unicode with the limited ASCII character subset.</li>
- <li><a class="reference external" href="strbasics.html">strbasics</a> Some high performance string operations.</li>
- <li><a class="reference external" href="strformat.html">strformat</a> Macro based standard string interpolation/formatting. Inspired by Python's f-strings.
- <strong>Note:</strong> if you need templating, consider using Nim <a class="reference external" href="filters.html">Source Code Filters (SCF)</a>.</li>
- <li><a class="reference external" href="strmisc.html">strmisc</a> Uncommon string handling operations that do not fit with the commonly used operations in <a class="reference external" href="strutils.html">strutils</a>.</li>
- <li><a class="reference external" href="strscans.html">strscans</a> A <tt class="docutils literal"><span class="pre"><span class="Identifier">scanf</span></span></tt> macro for convenient parsing of mini languages.</li>
- <li><a class="reference external" href="strutils.html">strutils</a> Common string handling operations like changing case of a string, splitting a string into substrings, searching for substrings, replacing substrings.</li>
- <li><a class="reference external" href="unicode.html">unicode</a> Support for handling the Unicode UTF-8 encoding.</li>
- <li><a class="reference external" href="unidecode.html">unidecode</a> It provides a single proc that does Unicode to ASCII transliterations. Based on Python's Unidecode module.</li>
- <li><a class="reference external" href="widestrs.html">widestrs</a> Nim support for C/C++'s wide strings.</li>
- <li><a class="reference external" href="wordwrap.html">wordwrap</a> An algorithm for word-wrapping Unicode strings.</li>
- </ul>
- <h2><a class="toc-backref" id="pure-libraries-time-handling" href="#pure-libraries-time-handling">Time handling</a></h2><ul class="simple"><li><a class="reference external" href="monotimes.html">monotimes</a> The <tt class="docutils literal"><span class="pre"><span class="Identifier">monotimes</span></span></tt> module implements monotonic timestamps.</li>
- <li><a class="reference external" href="times.html">times</a> The <tt class="docutils literal"><span class="pre"><span class="Identifier">times</span></span></tt> module contains support for working with time.</li>
- </ul>
- <h2><a class="toc-backref" id="pure-libraries-generic-operating-system-services" href="#pure-libraries-generic-operating-system-services">Generic Operating System Services</a></h2><ul class="simple"><li><a class="reference external" href="appdirs.html">appdirs</a> Helpers for determining special directories used by apps.</li>
- <li><a class="reference external" href="cmdline.html">cmdline</a> System facilities for reading command line parameters.</li>
- <li><a class="reference external" href="dirs.html">dirs</a> Directory handling.</li>
- <li><a class="reference external" href="distros.html">distros</a> Basics for OS distribution ("distro") detection and the OS's native package manager. Its primary purpose is to produce output for Nimble packages, but it also contains the widely used <strong>Distribution</strong> enum that is useful for writing platform-specific code. See <a class="reference external" href="packaging.html">packaging</a> for hints on distributing Nim using OS packages.</li>
- <li><a class="reference external" href="dynlib.html">dynlib</a> Accessing symbols from shared libraries.</li>
- <li><a class="reference external" href="envvars.html">envvars</a> Environment variable handling.</li>
- <li><a class="reference external" href="exitprocs.html">exitprocs</a> Adding hooks to program exit.</li>
- <li><a class="reference external" href="files.html">files</a> File handling.</li>
- <li><a class="reference external" href="memfiles.html">memfiles</a> Support for memory-mapped files (Posix's <tt class="docutils literal"><span class="pre"><span class="Identifier">mmap</span></span></tt>) on the different operating systems.</li>
- <li><a class="reference external" href="os.html">os</a> Basic operating system facilities like retrieving environment variables, reading command line arguments, working with directories, running shell commands, etc.</li>
- <li><a class="reference external" href="oserrors.html">oserrors</a> OS error reporting.</li>
- <li><a class="reference external" href="osproc.html">osproc</a> Module for process communication beyond <tt class="docutils literal"><span class="pre"><span class="Identifier">os</span><span class="Operator">.</span><span class="Identifier">execShellCmd</span></span></tt>.</li>
- <li><a class="reference external" href="paths.html">paths</a> Path handling.</li>
- <li><a class="reference external" href="reservedmem.html">reservedmem</a> Utilities for reserving portions of the address space of a program without consuming physical memory.</li>
- <li><a class="reference external" href="streams.html">streams</a> A stream interface and two implementations thereof: the <tt class="docutils literal"><span class="pre"><span class="Identifier">FileStream</span></span></tt> and the <tt class="docutils literal"><span class="pre"><span class="Identifier">StringStream</span></span></tt> which implement the stream interface for Nim file objects (<tt class="docutils literal"><span class="pre"><span class="Identifier">File</span></span></tt>) and strings. Other modules may provide other implementations for this standard stream interface.</li>
- <li><a class="reference external" href="symlinks.html">symlinks</a> Symlink handling.</li>
- <li><a class="reference external" href="syncio.html">syncio</a> Various synchronized I/O operations.</li>
- <li><a class="reference external" href="terminal.html">terminal</a> A module to control the terminal output (also called <em>console</em>).</li>
- <li><a class="reference external" href="tempfiles.html">tempfiles</a> Some utilities for generating temporary path names and creating temporary files and directories.</li>
- </ul>
- <h2><a class="toc-backref" id="pure-libraries-math-libraries" href="#pure-libraries-math-libraries">Math libraries</a></h2><ul class="simple"><li><a class="reference external" href="complex.html">complex</a> Complex numbers and relevant mathematical operations.</li>
- <li><a class="reference external" href="fenv.html">fenv</a> Floating-point environment. Handling of floating-point rounding and exceptions (overflow, zero-divide, etc.).</li>
- <li><a class="reference external" href="lenientops.html">lenientops</a> Binary operators for mixed integer/float expressions for convenience.</li>
- <li><a class="reference external" href="math.html">math</a> Mathematical operations like cosine, square root.</li>
- <li><a class="reference external" href="random.html">random</a> Fast and tiny random number generator.</li>
- <li><a class="reference external" href="rationals.html">rationals</a> Rational numbers and relevant mathematical operations.</li>
- <li><a class="reference external" href="stats.html">stats</a> Statistical analysis.</li>
- <li><a class="reference external" href="sysrand.html">sysrand</a> Cryptographically secure pseudorandom number generator.</li>
- </ul>
- <h2><a class="toc-backref" id="pure-libraries-internet-protocols-and-support" href="#pure-libraries-internet-protocols-and-support">Internet Protocols and Support</a></h2><ul class="simple"><li><a class="reference external" href="async.html">async</a> Exports <tt class="docutils literal"><span class="pre"><span class="Identifier">asyncmacro</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">asyncfutures</span></span></tt> for native backends, and <tt class="docutils literal"><span class="pre"><span class="Identifier">asyncjs</span></span></tt> on the JS backend.</li>
- <li><a class="reference external" href="asyncdispatch.html">asyncdispatch</a> An asynchronous dispatcher for IO operations.</li>
- <li><a class="reference external" href="asyncfile.html">asyncfile</a> An asynchronous file reading and writing using <tt class="docutils literal"><span class="pre"><span class="Identifier">asyncdispatch</span></span></tt>.</li>
- <li><a class="reference external" href="asyncftpclient.html">asyncftpclient</a> An asynchronous FTP client using the <tt class="docutils literal"><span class="pre"><span class="Identifier">asyncnet</span></span></tt> module.</li>
- <li><a class="reference external" href="asynchttpserver.html">asynchttpserver</a> An asynchronous HTTP server using the <tt class="docutils literal"><span class="pre"><span class="Identifier">asyncnet</span></span></tt> module.</li>
- <li><a class="reference external" href="asyncmacro.html">asyncmacro</a> <tt class="docutils literal"><span class="pre"><span class="Identifier">async</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">multisync</span></span></tt> macros for <tt class="docutils literal"><span class="pre"><span class="Identifier">asyncdispatch</span></span></tt>.</li>
- <li><a class="reference external" href="asyncnet.html">asyncnet</a> Asynchronous sockets based on the <tt class="docutils literal"><span class="pre"><span class="Identifier">asyncdispatch</span></span></tt> module.</li>
- <li><a class="reference external" href="asyncstreams.html">asyncstreams</a> <tt class="docutils literal"><span class="pre"><span class="Identifier">FutureStream</span></span></tt> - a future that acts as a queue.</li>
- <li><a class="reference external" href="cgi.html">cgi</a> Helpers for CGI applications.</li>
- <li><a class="reference external" href="cookies.html">cookies</a> Helper procs for parsing and generating cookies.</li>
- <li><a class="reference external" href="httpclient.html">httpclient</a> A simple HTTP client with support for both synchronous and asynchronous retrieval of web pages.</li>
- <li><a class="reference external" href="mimetypes.html">mimetypes</a> A mimetypes database.</li>
- <li><a class="reference external" href="nativesockets.html">nativesockets</a> A low-level sockets API.</li>
- <li><a class="reference external" href="net.html">net</a> A high-level sockets API.</li>
- <li><a class="reference external" href="selectors.html">selectors</a> A selector API with backends specific to each OS. Supported OS primitives: <tt class="docutils literal"><span class="pre"><span class="Identifier">epoll</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">kqueue</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">poll</span></span></tt>, and <tt class="docutils literal"><span class="pre"><span class="Identifier">select</span></span></tt> on Windows.</li>
- <li><a class="reference external" href="smtp.html">smtp</a> A simple SMTP client with support for both synchronous and asynchronous operation.</li>
- <li><a class="reference external" href="socketstreams.html">socketstreams</a> An implementation of the streams interface for sockets.</li>
- <li><a class="reference external" href="uri.html">uri</a> Functions for working with URIs and URLs.</li>
- </ul>
- <h2><a class="toc-backref" id="pure-libraries-threading" href="#pure-libraries-threading">Threading</a></h2><ul class="simple"><li><a class="reference external" href="isolation.html">isolation</a> The <tt class="docutils literal"><span class="pre"><span class="Identifier">Isolated</span><span class="Punctuation">[</span><span class="Identifier">T</span><span class="Punctuation">]</span></span></tt> type for safe construction of isolated subgraphs that can be passed efficiently to different channels and threads.</li>
- <li><a class="reference external" href="tasks.html">tasks</a> Basic primitives for creating parallel programs.</li>
- <li><a class="reference external" href="threadpool.html">threadpool</a> Implements Nim's <a class="reference external" href="manual_experimental.html#parallel-amp-spawn">spawn</a>.</li>
- <li><a class="reference external" href="typedthreads.html">typedthreads</a> Basic Nim thread support.</li>
- </ul>
- <h2><a class="toc-backref" id="pure-libraries-parsers" href="#pure-libraries-parsers">Parsers</a></h2><ul class="simple"><li><a class="reference external" href="htmlparser.html">htmlparser</a> HTML document parser that creates a XML tree representation.</li>
- <li><a class="reference external" href="json.html">json</a> High-performance JSON parser.</li>
- <li><a class="reference external" href="lexbase.html">lexbase</a> A low-level module that implements an extremely efficient buffering scheme for lexers and parsers. This is used by the diverse parsing modules.</li>
- <li><a class="reference external" href="parsecfg.html">parsecfg</a> The <tt class="docutils literal"><span class="pre"><span class="Identifier">parsecfg</span></span></tt> module implements a high-performance configuration file parser. The configuration file's syntax is similar to the Windows <tt class="docutils literal"><span class="pre">.ini</span></tt> format, but much more powerful, as it is not a line based parser. String literals, raw string literals, and triple quote string literals are supported as in the Nim programming language.</li>
- <li><a class="reference external" href="parsecsv.html">parsecsv</a> The <tt class="docutils literal"><span class="pre"><span class="Identifier">parsecsv</span></span></tt> module implements a simple high-performance CSV parser.</li>
- <li><a class="reference external" href="parsejson.html">parsejson</a> A JSON parser. It is used and exported by the <a class="reference external" href="json.html">json</a> module, but can also be used in its own right.</li>
- <li><a class="reference external" href="parseopt.html">parseopt</a> The <tt class="docutils literal"><span class="pre"><span class="Identifier">parseopt</span></span></tt> module implements a command line option parser.</li>
- <li><a class="reference external" href="parsesql.html">parsesql</a> The <tt class="docutils literal"><span class="pre"><span class="Identifier">parsesql</span></span></tt> module implements a simple high-performance SQL parser.</li>
- <li><a class="reference external" href="parseutils.html">parseutils</a> Helpers for parsing tokens, numbers, identifiers, etc.</li>
- <li><a class="reference external" href="parsexml.html">parsexml</a> The <tt class="docutils literal"><span class="pre"><span class="Identifier">parsexml</span></span></tt> module implements a simple high performance XML/HTML parser. The only encoding that is supported is UTF-8. The parser has been designed to be somewhat error-correcting, so that even some "wild HTML" found on the web can be parsed with it.</li>
- <li><a class="reference external" href="pegs.html">pegs</a> Procedures and operators for handling PEGs.</li>
- </ul>
- <h2><a class="toc-backref" id="pure-libraries-docutils" href="#pure-libraries-docutils">Docutils</a></h2><ul class="simple"><li><a class="reference external" href="highlite.html">packages/docutils/highlite</a> Source highlighter for programming or markup languages. Currently, only a few languages are supported, other languages may be added. The interface supports one language nested in another.</li>
- <li><a class="reference external" href="rst.html">packages/docutils/rst</a> A reStructuredText parser. A large subset is implemented. Some features of the markdown wiki syntax are also supported.</li>
- <li><a class="reference external" href="rstast.html">packages/docutils/rstast</a> An AST for the reStructuredText parser.</li>
- <li><a class="reference external" href="rstgen.html">packages/docutils/rstgen</a> A generator of HTML/Latex from reStructuredText.</li>
- </ul>
- <h2><a class="toc-backref" id="pure-libraries-xml-processing" href="#pure-libraries-xml-processing">XML Processing</a></h2><ul class="simple"><li><a class="reference external" href="xmltree.html">xmltree</a> A simple XML tree. More efficient and simpler than the DOM. It also contains a macro for XML/HTML code generation.</li>
- <li><a class="reference external" href="xmlparser.html">xmlparser</a> XML document parser that creates a XML tree representation.</li>
- </ul>
- <h2><a class="toc-backref" id="pure-libraries-generators" href="#pure-libraries-generators">Generators</a></h2><ul class="simple"><li><a class="reference external" href="genasts.html">genasts</a> AST generation using captured variables for macros.</li>
- <li><a class="reference external" href="htmlgen.html">htmlgen</a> A simple XML and HTML code generator. Each commonly used HTML tag has a corresponding macro that generates a string with its HTML representation.</li>
- </ul>
- <h2><a class="toc-backref" id="pure-libraries-hashing" href="#pure-libraries-hashing">Hashing</a></h2><ul class="simple"><li><a class="reference external" href="base64.html">base64</a> A Base64 encoder and decoder.</li>
- <li><a class="reference external" href="hashes.html">hashes</a> Efficient computations of hash values for diverse Nim types.</li>
- <li><a class="reference external" href="md5.html">md5</a> The MD5 checksum algorithm.</li>
- <li><a class="reference external" href="oids.html">oids</a> An OID is a global ID that consists of a timestamp, a unique counter, and a random value. This combination should suffice to produce a globally distributed unique ID.</li>
- <li><a class="reference external" href="sha1.html">sha1</a> The SHA-1 checksum algorithm.</li>
- </ul>
- <h2><a class="toc-backref" id="pure-libraries-serialization" href="#pure-libraries-serialization">Serialization</a></h2><ul class="simple"><li><a class="reference external" href="jsonutils.html">jsonutils</a> Hookable (de)serialization for arbitrary types using JSON.</li>
- <li><a class="reference external" href="marshal.html">marshal</a> Contains procs for serialization and deserialization of arbitrary Nim data structures.</li>
- </ul>
- <h2><a class="toc-backref" id="pure-libraries-miscellaneous" href="#pure-libraries-miscellaneous">Miscellaneous</a></h2><ul class="simple"><li><a class="reference external" href="assertions.html">assertions</a> Assertion handling.</li>
- <li><a class="reference external" href="browsers.html">browsers</a> Procs for opening URLs with the user's default browser.</li>
- <li><a class="reference external" href="colors.html">colors</a> Color handling.</li>
- <li><a class="reference external" href="coro.html">coro</a> Experimental coroutines in Nim.</li>
- <li><a class="reference external" href="decls.html">decls</a> Syntax sugar for some declarations.</li>
- <li><a class="reference external" href="enumerate.html">enumerate</a> <tt class="docutils literal"><span class="pre"><span class="Identifier">enumerate</span></span></tt> syntactic sugar based on Nim's macro system.</li>
- <li><a class="reference external" href="importutils.html">importutils</a> Utilities related to import and symbol resolution.</li>
- <li><a class="reference external" href="logging.html">logging</a> A simple logger.</li>
- <li><a class="reference external" href="segfaults.html">segfaults</a> Turns access violations or segfaults into a <tt class="docutils literal"><span class="pre"><span class="Identifier">NilAccessDefect</span></span></tt> exception.</li>
- <li><a class="reference external" href="sugar.html">sugar</a> Nice syntactic sugar based on Nim's macro system.</li>
- <li><a class="reference external" href="unittest.html">unittest</a> Implements a Unit testing DSL.</li>
- <li><a class="reference external" href="varints.html">varints</a> Decode variable-length integers that are compatible with SQLite.</li>
- <li><a class="reference external" href="with.html">with</a> The <tt class="docutils literal"><span class="pre"><span class="Identifier">with</span></span></tt> macro for easy function chaining.</li>
- <li><a class="reference external" href="wrapnils.html">wrapnils</a> Allows evaluating expressions safely against nil dereferences.</li>
- </ul>
- <h2><a class="toc-backref" id="pure-libraries-modules-for-the-javascript-backend" href="#pure-libraries-modules-for-the-javascript-backend">Modules for the JavaScript backend</a></h2><ul class="simple"><li><a class="reference external" href="asyncjs.html">asyncjs</a> Types and macros for writing asynchronous procedures in JavaScript.</li>
- <li><a class="reference external" href="dom.html">dom</a> Declaration of the Document Object Model for the JS backend.</li>
- <li><a class="reference external" href="jsbigints.html">jsbigints</a> Arbitrary precision integers.</li>
- <li><a class="reference external" href="jsconsole.html">jsconsole</a> Wrapper for the <tt class="docutils literal"><span class="pre"><span class="Identifier">console</span></span></tt> object.</li>
- <li><a class="reference external" href="jscore.html">jscore</a> The wrapper of core JavaScript functions. For most purposes, you should be using the <tt class="docutils literal"><span class="pre"><span class="Identifier">math</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">json</span></span></tt>, and <tt class="docutils literal"><span class="pre"><span class="Identifier">times</span></span></tt> stdlib modules instead of this module.</li>
- <li><a class="reference external" href="jsfetch.html">jsfetch</a> Wrapper for <tt class="docutils literal"><span class="pre"><span class="Identifier">fetch</span></span></tt>.</li>
- <li><a class="reference external" href="jsffi.html">jsffi</a> Types and macros for easier interaction with JavaScript.</li>
- <li><a class="reference external" href="jsre.html">jsre</a> Regular Expressions for the JavaScript target.</li>
- </ul>
- <h1><a class="toc-backref" id="impure-libraries" href="#impure-libraries">Impure libraries</a></h1>
- <h2><a class="toc-backref" id="impure-libraries-regular-expressions" href="#impure-libraries-regular-expressions">Regular expressions</a></h2><ul class="simple"><li><a class="reference external" href="re.html">re</a> Procedures and operators for handling regular expressions. The current implementation uses PCRE.</li>
- <li><p><a class="reference external" href="nre.html">nre</a></p>
- <p>Many help functions for handling regular expressions. The current implementation uses PCRE.</p>
- </li>
- </ul>
- <h2><a class="toc-backref" id="impure-libraries-database-support" href="#impure-libraries-database-support">Database support</a></h2><ul class="simple"><li><a class="reference external" href="db_mysql.html">db_mysql</a> A higher level MySQL database wrapper. The same interface is implemented for other databases too.</li>
- <li><a class="reference external" href="db_odbc.html">db_odbc</a> A higher level ODBC database wrapper. The same interface is implemented for other databases too.</li>
- <li><a class="reference external" href="db_postgres.html">db_postgres</a> A higher level PostgreSQL database wrapper. The same interface is implemented for other databases too.</li>
- <li><a class="reference external" href="db_sqlite.html">db_sqlite</a> A higher level SQLite database wrapper. The same interface is implemented for other databases too.</li>
- </ul>
- <h2><a class="toc-backref" id="impure-libraries-generic-operating-system-services" href="#impure-libraries-generic-operating-system-services">Generic Operating System Services</a></h2><ul class="simple"><li><a class="reference external" href="rdstdin.html">rdstdin</a> Code for reading user input from stdin.</li>
- </ul>
- <h1><a class="toc-backref" id="wrappers" href="#wrappers">Wrappers</a></h1><p>The generated HTML for some of these wrappers is so huge that it is not contained in the distribution. You can then find them on the website.</p>
- <h2><a class="toc-backref" id="wrappers-windowsminusspecific" href="#wrappers-windowsminusspecific">Windows-specific</a></h2><ul class="simple"><li><a class="reference external" href="winlean.html">winlean</a> Wrapper for a small subset of the Win32 API.</li>
- <li><a class="reference external" href="registry.html">registry</a> Windows registry support.</li>
- </ul>
- <h2><a class="toc-backref" id="wrappers-unix-specific" href="#wrappers-unix-specific">UNIX specific</a></h2><ul class="simple"><li><a class="reference external" href="posix.html">posix</a> Wrapper for the POSIX standard.</li>
- <li><a class="reference external" href="posix_utils.html">posix_utils</a> Contains helpers for the POSIX standard or specialized for Linux and BSDs.</li>
- </ul>
- <h2><a class="toc-backref" id="wrappers-regular-expressions" href="#wrappers-regular-expressions">Regular expressions</a></h2><ul class="simple"><li><a class="reference external" href="pcre.html">pcre</a> Wrapper for the PCRE library.</li>
- </ul>
- <h2><a class="toc-backref" id="wrappers-database-support" href="#wrappers-database-support">Database support</a></h2><ul class="simple"><li><a class="reference external" href="mysql.html">mysql</a> Wrapper for the mySQL API.</li>
- <li><a class="reference external" href="odbcsql.html">odbcsql</a> interface to the ODBC driver.</li>
- <li><a class="reference external" href="postgres.html">postgres</a> Wrapper for the PostgreSQL API.</li>
- <li><a class="reference external" href="sqlite3.html">sqlite3</a> Wrapper for the SQLite 3 API.</li>
- </ul>
- <h2><a class="toc-backref" id="wrappers-network-programming-and-internet-protocols" href="#wrappers-network-programming-and-internet-protocols">Network Programming and Internet Protocols</a></h2><ul class="simple"><li><a class="reference external" href="openssl.html">openssl</a> Wrapper for OpenSSL.</li>
- </ul>
- </p>
-
- </div>
- </div>
- <div class="twelve-columns footer">
- <span class="nim-sprite"></span>
- <br>
- <small style="color: var(--hint);">Made with Nim. Generated: 2025-01-09 11:59:39 UTC</small>
- </div>
- </div>
- </div>
- <script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
-
- </body>
- </html>
|