340 lines
43 KiB
HTML
340 lines
43 KiB
HTML
<?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">
|
|
<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>
|
|
|
|
<!-- 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">
|
|
|
|
<!-- JS -->
|
|
<script type="text/javascript" src="dochack.js"></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"
|
|
onkeyup="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>1.9.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> This module allows querying the compiler about diverse configuration settings.</li>
|
|
<li><a class="reference external" href="cpuinfo.html">cpuinfo</a> This module implements procs to determine the number of CPUs / cores.</li>
|
|
<li><a class="reference external" href="effecttraits.html">effecttraits</a> This module provides access to the inferred .raises effects for Nim's macro system.</li>
|
|
<li><a class="reference external" href="endians.html">endians</a> This module contains 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> This module defines compile-time reflection procs for working with types.</li>
|
|
<li><a class="reference external" href="volatile.html">volatile</a> This module contains 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> This module implements some common generic algorithms like sort or binary search.</li>
|
|
<li><a class="reference external" href="enumutils.html">enumutils</a> This module adds 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> This module implements 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> This module adds 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> This module implements 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> This module contains support for 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> This module contains 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> This module implements formatting floats as strings.</li>
|
|
<li><a class="reference external" href="objectdollar.html">objectdollar</a> This module implements 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> This module provides 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.</li>
|
|
<li><a class="reference external" href="strmisc.html">strmisc</a> This module contains uncommon string handling operations that do not fit with the commonly used operations in strutils.</li>
|
|
<li><a class="reference external" href="strscans.html">strscans</a> This module contains 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> This module contains 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> This module provides support to handle 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> This module contains an algorithm to wordwrap a Unicode string.</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> This module implements helpers for determining special directories used by apps.</li>
|
|
<li><a class="reference external" href="cmdline.html">cmdline</a> This module contains system facilities for reading command line parameters.</li>
|
|
<li><a class="reference external" href="dirs.html">dirs</a> This module implements directory handling.</li>
|
|
<li><a class="reference external" href="distros.html">distros</a> This module implements the 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> This module implements the ability to access symbols from shared libraries.</li>
|
|
<li><a class="reference external" href="envvars.html">envvars</a> This module implements environment variable handling.</li>
|
|
<li><a class="reference external" href="exitprocs.html">exitprocs</a> This module allows adding hooks to program exit.</li>
|
|
<li><a class="reference external" href="files.html">files</a> This module implements file handling.</li>
|
|
<li><a class="reference external" href="memfiles.html">memfiles</a> This module provides 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> This module implements 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> This module implements path handling.</li>
|
|
<li><a class="reference external" href="reservedmem.html">reservedmem</a> This module provides 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> This module provides 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> This module implements symlink handling.</li>
|
|
<li><a class="reference external" href="syncio.html">syncio</a> This module implements various synchronized I/O operations.</li>
|
|
<li><a class="reference external" href="terminal.html">terminal</a> This module contains a few procedures to control the <em>terminal</em> (also called <em>console</em>). The implementation simply uses ANSI escape sequences and does not depend on any other module.</li>
|
|
<li><a class="reference external" href="tempfiles.html">tempfiles</a> This module provides some utils to generate temporary path names and create 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> This module implements 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> Provides 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> This module implements 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> This module implements an asynchronous dispatcher for IO operations.</li>
|
|
<li><a class="reference external" href="asyncfile.html">asyncfile</a> This module implements 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> This module implements 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> This module implements 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> Implements the <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> This module implements 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> This module provides <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> This module implements helpers for CGI applications.</li>
|
|
<li><a class="reference external" href="cookies.html">cookies</a> This module contains helper procs for parsing and generating cookies.</li>
|
|
<li><a class="reference external" href="httpclient.html">httpclient</a> This module implements a simple HTTP client which supports both synchronous and asynchronous retrieval of web pages.</li>
|
|
<li><a class="reference external" href="mimetypes.html">mimetypes</a> This module implements a mimetypes database.</li>
|
|
<li><a class="reference external" href="nativesockets.html">nativesockets</a> This module implements a low-level sockets API.</li>
|
|
<li><a class="reference external" href="net.html">net</a> This module implements a high-level sockets API. It replaces the <tt class="docutils literal"><span class="pre"><span class="Identifier">sockets</span></span></tt> module.</li>
|
|
<li><a class="reference external" href="selectors.html">selectors</a> This module implements a selector API with backends specific to each OS. Currently, epoll on Linux and select on other operating systems.</li>
|
|
<li><a class="reference external" href="smtp.html">smtp</a> This module implements a simple SMTP client.</li>
|
|
<li><a class="reference external" href="socketstreams.html">socketstreams</a> This module provides an implementation of the streams interface for sockets.</li>
|
|
<li><a class="reference external" href="uri.html">uri</a> This module provides functions for working with URIs.</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> This module implements 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> This module provides 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> This module parses an HTML document and creates its 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> This is 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> This module implements 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> This module contains 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> This module contains 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> This module implements 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> This module implements an AST for the reStructuredText parser.</li>
|
|
<li><a class="reference external" href="rstgen.html">packages/docutils/rstgen</a> This module implements 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> This module parses an XML document and creates its 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> This module implements AST generation using captured variables for macros.</li>
|
|
<li><a class="reference external" href="htmlgen.html">htmlgen</a> This module implements 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> This module implements a Base64 encoder and decoder.</li>
|
|
<li><a class="reference external" href="hashes.html">hashes</a> This module implements efficient computations of hash values for diverse Nim types.</li>
|
|
<li><a class="reference external" href="md5.html">md5</a> This module implements 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> This module implements 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> This module implements 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> This module implements assertion handling.</li>
|
|
<li><a class="reference external" href="browsers.html">browsers</a> This module implements procs for opening URLs with the user's default browser.</li>
|
|
<li><a class="reference external" href="colors.html">colors</a> This module implements color handling for Nim.</li>
|
|
<li><a class="reference external" href="coro.html">coro</a> This module implements experimental coroutines in Nim.</li>
|
|
<li><a class="reference external" href="decls.html">decls</a> This module implements syntax sugar for some declarations.</li>
|
|
<li><a class="reference external" href="enumerate.html">enumerate</a> This module implements <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> This module implements 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> This module implements 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> This module implements 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> This module 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="jshttp.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> This module contains 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>This module contains 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> This module contains code for reading 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> Contains 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> Contains 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> Contains 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> Contains a wrapper for the PostgreSQL API.</li>
|
|
<li><a class="reference external" href="sqlite3.html">sqlite3</a> Contains 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: 2023-03-13 00:19:04 UTC</small>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
|
|
|
|
<!-- 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'/>
|
|
</body>
|
|
</html>
|