summary refs log tree commit diff stats
path: root/doc/lib.rst
diff options
context:
space:
mode:
Diffstat (limited to 'doc/lib.rst')
-rw-r--r--doc/lib.rst568
1 files changed, 0 insertions, 568 deletions
diff --git a/doc/lib.rst b/doc/lib.rst
deleted file mode 100644
index f0569070d..000000000
--- a/doc/lib.rst
+++ /dev/null
@@ -1,568 +0,0 @@
-====================
-Nim Standard Library
-====================
-
-:Author: Andreas Rumpf
-:Version: |nimversion|
-
-.. contents::
-
-  "The good thing about reinventing the wheel is that you can get a round one."
-
-Though the Nim Standard Library is still evolving, it is already quite
-usable. It is divided into *pure libraries*, *impure libraries* and *wrappers*.
-
-Pure libraries do not depend on any external ``*.dll`` or ``lib*.so`` binary
-while impure libraries do. A wrapper is an impure library that is a very
-low-level interface to a C library.
-
-Read this `document <apis.html>`_ for a quick overview of the API design.
-
-The `bottom <#nimble>`_ of this page includes a list of 3rd party packages
-created by the Nim community. These packages are a useful addition to the
-modules in the standard library.
-
-
-Pure libraries
-==============
-
-Core
-----
-
-* `system <system.html>`_
-  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.
-
-* `threads <threads.html>`_
-  Nim thread support. **Note**: This is part of the system module. Do not
-  import it explicitly.
-
-* `channels <channels.html>`_
-  Nim message passing support for threads. **Note**: This is part of the
-  system module. Do not import it explicitly.
-
-* `locks <locks.html>`_
-  Locks and condition variables for Nim.
-
-* `rlocks <rlocks.html>`_
-  Reentrant locks for Nim.
-
-* `macros <macros.html>`_
-  Contains the AST API and documentation of Nim for writing macros.
-
-* `typeinfo <typeinfo.html>`_
-  Provides (unsafe) access to Nim's run time type information.
-
-* `typetraits <typetraits.html>`_
-  This module defines compile-time reflection procs for working with types.
-
-* `threadpool <threadpool.html>`_
-  Implements Nim's `spawn <manual.html#spawn>`_.
-
-* `cpuinfo <cpuinfo.html>`_
-  This module implements procs to determine the number of CPUs / cores.
-
-* `lenientops <lenientops.html>`_
-  Provides binary operators for mixed integer/float expressions for convenience.
-
-
-
-Collections and algorithms
---------------------------
-
-* `algorithm <algorithm.html>`_
-  Implements some common generic algorithms like sort or binary search.
-* `tables <tables.html>`_
-  Nim hash table support. Contains tables, ordered tables and count tables.
-* `sets <sets.html>`_
-  Nim hash and bit set support.
-* `lists <lists.html>`_
-  Nim linked list support. Contains singly and doubly linked lists and
-  circular lists ("rings").
-* `deques <deques.html>`_
-  Implementation of a double-ended queue.
-  The underlying implementation uses a ``seq``.
-* `intsets <intsets.html>`_
-  Efficient implementation of a set of ints as a sparse bit set.
-* `critbits <critbits.html>`_
-  This module implements a *crit bit tree* which is an efficient
-  container for a sorted set of strings, or for a sorted mapping of strings.
-* `sequtils <sequtils.html>`_
-  This module implements operations for the built-in seq type
-  which were inspired by functional programming languages.
-* `sharedtables <sharedtables.html>`_
-  Nim shared hash table support. Contains shared tables.
-* `sharedlist <sharedlist.html>`_
-  Nim shared linked list support. Contains shared singly linked list.
-
-
-String handling
----------------
-
-* `strutils <strutils.html>`_
-  This module contains common string handling operations like changing
-  case of a string, splitting a string into substrings, searching for
-  substrings, replacing substrings.
-
-* `strformat <strformat.html>`_
-  Macro based standard string interpolation / formatting. Inpired by
-  Python's ```f``-strings.
-
-* `strmisc <strmisc.html>`_
-  This module contains uncommon string handling operations that do not
-  fit with the commonly used operations in strutils.
-
-* `parseutils <parseutils.html>`_
-  This module contains helpers for parsing tokens, numbers, identifiers, etc.
-
-* `strscans <strscans.html>`_
-  This module contains a ``scanf`` macro for convenient parsing of mini languages.
-
-* `strtabs <strtabs.html>`_
-  The ``strtabs`` module implements an efficient hash table that is a mapping
-  from strings to strings. Supports a case-sensitive, case-insensitive and
-  style-insensitive mode. An efficient string substitution operator ``%``
-  for the string table is also provided.
-
-* `unicode <unicode.html>`_
-  This module provides support to handle the Unicode UTF-8 encoding.
-
-* `encodings <encodings.html>`_
-  Converts between different character encodings. On UNIX, this uses
-  the ``iconv`` library, on Windows the Windows API.
-
-* `pegs <pegs.html>`_
-  This module contains procedures and operators for handling PEGs.
-
-* `ropes <ropes.html>`_
-  This module contains support for a *rope* data type.
-  Ropes can represent very long strings efficiently; especially concatenation
-  is done in O(1) instead of O(n).
-
-* `matchers <matchers.html>`_
-  This module contains various string matchers for email addresses, etc.
-
-* `subexes <subexes.html>`_
-  This module implements advanced string substitution operations.
-
-
-Generic Operating System Services
----------------------------------
-
-* `os <os.html>`_
-  Basic operating system facilities like retrieving environment variables,
-  reading command line arguments, working with directories, running shell
-  commands, etc.
-
-* `osproc <osproc.html>`_
-  Module for process communication beyond ``os.execShellCmd``.
-
-* `times <times.html>`_
-  The ``times`` module contains basic support for working with time.
-
-* `dynlib <dynlib.html>`_
-  This module implements the ability to access symbols from shared libraries.
-
-* `streams <streams.html>`_
-  This module provides a stream interface and two implementations thereof:
-  the `FileStream` and the `StringStream` which implement the stream
-  interface for Nim file objects (`File`) and strings. Other modules
-  may provide other implementations for this standard stream interface.
-
-* `marshal <marshal.html>`_
-  Contains procs for serialization and deseralization of arbitrary Nim
-  data structures.
-
-* `terminal <terminal.html>`_
-  This module contains a few procedures to control the *terminal*
-  (also called *console*). The implementation simply uses ANSI escape
-  sequences and does not depend on any other module.
-
-* `memfiles <memfiles.html>`_
-  This module provides support for memory mapped files (Posix's ``mmap``)
-  on the different operating systems.
-
-* `fsmonitor <fsmonitor.html>`_
-  This module implements the ability to monitor a directory/file for changes
-  using Posix's inotify API.
-
-  **Warning:** This module will likely be moved out to a Nimble package soon.
-
-* `asyncfile <asyncfile.html>`_
-  This module implements asynchronous file reading and writing using
-  ``asyncdispatch``.
-
-* `distros <distros.html>`_
-  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 **Distribution** enum
-  that is useful for writing platform specific code.
-
-
-Math libraries
---------------
-
-* `math <math.html>`_
-  Mathematical operations like cosine, square root.
-
-* `complex <complex.html>`_
-  This module implements complex numbers and their mathematical operations.
-
-* `rationals <rationals.html>`_
-  This module implements rational numbers and their mathematical operations.
-
-* `fenv <fenv.html>`_
-  Floating-point environment. Handling of floating-point rounding and
-  exceptions (overflow, zero-devide, etc.).
-
-* `mersenne <mersenne.html>`_
-  Mersenne twister random number generator.
-
-* `random <random.html>`_
-  Fast and tiny random number generator.
-
-* `stats <stats.html>`_
-  Statistical analysis
-
-Internet Protocols and Support
-------------------------------
-
-* `cgi <cgi.html>`_
-  This module implements helpers for CGI applications.
-
-* `scgi <scgi.html>`_
-  This module implements helpers for SCGI applications.
-
-* `browsers <browsers.html>`_
-  This module implements procs for opening URLs with the user's default
-  browser.
-
-* `httpserver <httpserver.html>`_
-  This module implements a simple HTTP server.
-
-* `httpclient <httpclient.html>`_
-  This module implements a simple HTTP client which supports both synchronous
-  and asynchronous retrieval of web pages.
-
-* `smtp <smtp.html>`_
-  This module implement a simple SMTP client.
-
-* `cookies <cookies.html>`_
-  This module contains helper procs for parsing and generating cookies.
-
-* `mimetypes <mimetypes.html>`_
-  This module implements a mimetypes database.
-
-* `uri <uri.html>`_
-  This module provides functions for working with URIs.
-
-* `asyncdispatch <asyncdispatch.html>`_
-  This module implements an asynchronous dispatcher for IO operations.
-
-* `asyncnet <asyncnet.html>`_
-  This module implements asynchronous sockets based on the ``asyncdispatch``
-  module.
-
-* `asynchttpserver <asynchttpserver.html>`_
-  This module implements an asynchronous HTTP server using the ``asyncnet``
-  module.
-
-* `asyncftpclient <asyncftpclient.html>`_
-  This module implements an asynchronous FTP client using the ``asyncnet``
-  module.
-
-* `net <net.html>`_
-  This module implements a high-level sockets API. It will replace the
-  ``sockets`` module in the future.
-
-* `nativesockets <nativesockets.html>`_
-  This module implements a low-level sockets API.
-
-* `selectors <selectors.html>`_
-  This module implements a selector API with backends specific to each OS.
-  Currently epoll on Linux and select on other operating systems.
-
-Parsers
--------
-
-* `parseopt <parseopt.html>`_
-  The ``parseopt`` module implements a command line option parser.
-
-* `parseopt2 <parseopt2.html>`_
-  The ``parseopt2`` module implements a command line option parser. This
-  supports long and short command options with optional values and command line
-  arguments.
-
-* `parsecfg <parsecfg.html>`_
-  The ``parsecfg`` module implements a high performance configuration file
-  parser. The configuration file's syntax is similar to the Windows ``.ini``
-  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.
-
-* `parsexml <parsexml.html>`_
-  The ``parsexml`` 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.
-
-* `parsecsv <parsecsv.html>`_
-  The ``parsecsv`` module implements a simple high performance CSV parser.
-
-* `parsesql <parsesql.html>`_
-  The ``parsesql`` module implements a simple high performance SQL parser.
-
-* `json <json.html>`_
-  High performance JSON parser.
-
-* `lexbase <lexbase.html>`_
-  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.
-
-* `highlite <highlite.html>`_
-  Source highlighter for programming or markup languages.  Currently
-  only few languages are supported, other languages may be added.
-  The interface supports one language nested in another.
-
-* `rst <rst.html>`_
-  This module implements a reStructuredText parser. A large subset
-  is implemented. Some features of the markdown wiki syntax are
-  also supported.
-
-* `rstast <rstast.html>`_
-  This module implements an AST for the reStructuredText parser.
-
-* `rstgen <rstgen.html>`_
-  This module implements a generator of HTML/Latex from reStructuredText.
-
-* `sexp <sexp.html>`_
-  High performance sexp parser and generator, mainly for communication
-  with emacs.
-
-
-XML Processing
---------------
-
-* `xmldom <xmldom.html>`_
-  This module implements the XML DOM Level 2.
-
-* `xmldomparser <xmldomparser.html>`_
-  This module parses an XML Document into a XML DOM Document representation.
-
-* `xmltree <xmltree.html>`_
-  A simple XML tree. More efficient and simpler than the DOM. It also
-  contains a macro for XML/HTML code generation.
-
-* `xmlparser <xmlparser.html>`_
-  This module parses an XML document and creates its XML tree representation.
-
-* `htmlparser <htmlparser.html>`_
-  This module parses an HTML document and creates its XML tree representation.
-
-* `htmlgen <htmlgen.html>`_
-  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.
-
-Cryptography and Hashing
-------------------------
-
-* `hashes <hashes.html>`_
-  This module implements efficient computations of hash values for diverse
-  Nim types.
-
-* `md5 <md5.html>`_
-  This module implements the MD5 checksum algorithm.
-
-* `base64 <base64.html>`_
-  This module implements a base64 encoder and decoder.
-
-* `sha1 <sha1.html>`_
-  This module implements a sha1 encoder and decoder.
-
-
-Multimedia support
-------------------
-
-* `colors <colors.html>`_
-  This module implements color handling for Nim. It is used by
-  the ``graphics`` module.
-
-
-Miscellaneous
--------------
-
-* `events <events.html>`_
-  This module implements an event system that is not dependent on external
-  graphical toolkits.
-
-* `oids <oids.html>`_
-  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. This implementation was extracted
-  from the Mongodb interface and it thus binary compatible with a Mongo OID.
-
-* `endians <endians.html>`_
-  This module contains helpers that deal with different byte orders.
-
-* `logging <logging.html>`_
-  This module implements a simple logger.
-
-* `options <options.html>`_
-  Types which encapsulate an optional value.
-
-* `sugar <sugar.html>`_
-  This module implements nice syntactic sugar based on Nim's macro system.
-
-* `coro <coro.html>`_
-  This module implements experimental coroutines in Nim.
-
-* `unittest <unittest.html>`_
-  Implements a Unit testing DSL.
-
-* `segfaults <segfaults.html>`_
-  Turns access violations or segfaults into a ``NilAccessError`` exception.
-
-Modules for JS backend
----------------------------
-
-* `dom <dom.html>`_
-  Declaration of the Document Object Model for the JS backend.
-
-* `jsffi <jsffi.html>`_
-  Types and macros for easier interaction with JavaScript.
-
-* `asyncjs <asyncjs.html>`_
-  Types and macros for writing asynchronous procedures in JavaScript.
-
-* `jscore <jscore.html>`_
-  Wrapper of core JavaScript functions. For most purposes you should be using
-  the ``math``, ``json``, and ``times`` stdlib modules instead of this module.
-
-Deprecated modules
-------------------
-
-* `asyncio <asyncio.html>`_
-  This module implements an asynchronous event loop for sockets.
-  **Deprecated since version 0.11.2:**
-  Use the `asyncnet <asyncnet.html>`_ together with the
-  `asyncdispatch <asyncdispatch.html>`_ module instead.
-
-* `ftpclient <ftpclient.html>`_
-  This module implements an FTP client.
-  **Deprecated since version 0.11.3:**
-  Use the `asyncftpclient <asyncftpclient.html>`_ module instead.
-
-* `sockets <sockets.html>`_
-  This module implements a simple portable type-safe sockets layer.
-  **Deprecated since version 0.11.2:**
-  Use the `net <net.html>`_ or the `rawsockets <rawsockets.html>`_ module
-  instead.
-
-* `rawsockets <rawsockets.html>`_
-  **Deprecated since version 0.11.4:**
-  This module has been renamed to `nativesockets <nativesockets.html>`_.
-
-
-Impure libraries
-================
-
-Regular expressions
--------------------
-
-* `re <re.html>`_
-  This module contains procedures and operators for handling regular
-  expressions. The current implementation uses PCRE.
-
-* `nre <nre.html>`_
-  Another implementation of procedures for using regular expressions. Also uses
-  PCRE.
-
-
-Database support
-----------------
-
-* `db_postgres <db_postgres.html>`_
-  A higher level PostgreSQL database wrapper. The same interface is implemented
-  for other databases too.
-
-* `db_mysql <db_mysql.html>`_
-  A higher level MySQL database wrapper. The same interface is implemented
-  for other databases too.
-
-* `db_sqlite <db_sqlite.html>`_
-  A higher level SQLite database wrapper. The same interface is implemented
-  for other databases too.
-
-
-Other
------
-
-* `ssl <ssl.html>`_
-  This module provides an easy to use sockets-style
-  Nim interface to the OpenSSL library.
-
-
-Wrappers
-========
-
-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.
-
-Windows specific
-----------------
-
-* `winlean <winlean.html>`_
-  Contains a wrapper for a small subset of the Win32 API.
-
-
-UNIX specific
--------------
-
-* `posix <posix.html>`_
-  Contains a wrapper for the POSIX standard.
-
-
-Regular expressions
--------------------
-
-* `pcre <pcre.html>`_
-  Wrapper for the PCRE library.
-
-
-GUI libraries
--------------
-
-* `iup <iup.html>`_
-  Wrapper of the IUP GUI library.
-
-
-Database support
-----------------
-
-* `postgres <postgres.html>`_
-  Contains a wrapper for the PostgreSQL API.
-* `mysql <mysql.html>`_
-  Contains a wrapper for the mySQL API.
-* `sqlite3 <sqlite3.html>`_
-  Contains a wrapper for SQLite 3 API.
-* `odbcsql <odbcsql.html>`_
-  interface to the ODBC driver.
-
-
-Network Programming and Internet Protocols
-------------------------------------------
-
-* `openssl <openssl.html>`_
-  Wrapper for OpenSSL.
-
-
-Nimble
-======
-
-Nimble is a package manager for the Nim programming language.
-For instructions on how to install Nimble packages see
-`its README <https://github.com/nim-lang/nimble#readme>`_.
-
-To see a list of Nimble's packages, check out `https://nimble.directory/ <https://nimble.directory/>`_ or the `packages repos <https://github.com/nim-lang/packages>`_ on GitHub.