mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-08 05:53:22 +00:00
217 lines
7.1 KiB
Plaintext
217 lines
7.1 KiB
Plaintext
=======================
|
|
Nimrod Standard Library
|
|
=======================
|
|
|
|
:Author: Andreas Rumpf
|
|
:Version: |nimrodversion|
|
|
|
|
Though the Nimrod Standard Library is still evolving, it is already quite
|
|
usable. It is divided into basic libraries that contains modules that virtually
|
|
every program will need and advanced libraries which are more heavy weight.
|
|
Advanced libraries are in the ``lib/base`` directory.
|
|
|
|
Basic libraries
|
|
===============
|
|
|
|
* `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.
|
|
|
|
* `strutils <strutils.html>`_
|
|
This module contains common string handling operations like converting a
|
|
string into uppercase, splitting a string into substrings, searching for
|
|
substrings, replacing substrings.
|
|
|
|
* `os <os.html>`_
|
|
Basic operating system facilities like retrieving environment variables,
|
|
reading command line arguments, working with directories, running shell
|
|
commands, etc. This module is -- like any other basic library --
|
|
platform independant.
|
|
|
|
* `math <math.html>`_
|
|
Mathematical operations like cosine, square root.
|
|
|
|
* `complex <complex.html>`_
|
|
This module implements complex numbers and their mathematical operations.
|
|
|
|
* `times <times.html>`_
|
|
The ``times`` module contains basic support for working with time.
|
|
|
|
* `parseopt <parseopt.html>`_
|
|
The ``parseopt`` 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 Nimrod programming language.
|
|
|
|
* `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.
|
|
|
|
* `streams <streams.html>`_
|
|
This module provides a stream interface and two implementations thereof:
|
|
the `PFileStream` and the `PStringStream` which implement the stream
|
|
interface for Nimrod file objects (`TFile`) and strings. Other modules
|
|
may provide other implementations for this standard stream interface.
|
|
|
|
* `hashes <hashes.html>`_
|
|
This module implements efficient computations of hash values for diverse
|
|
Nimrod types.
|
|
|
|
* `lexbase <lexbase.html>`_
|
|
This is a low level module that implements an extremely efficent buffering
|
|
scheme for lexers and parsers. This is used by the ``parsecfg`` module.
|
|
|
|
|
|
Advanced libaries
|
|
=================
|
|
|
|
* `regexprs <regexprs.html>`_
|
|
This module contains procedures and operators for handling regular
|
|
expressions.
|
|
|
|
* `dialogs <dialogs.html>`_
|
|
This module implements portable dialogs for Nimrod; the implementation
|
|
builds on the GTK interface. On Windows, native dialogs are shown if
|
|
appropriate.
|
|
|
|
* `zipfiles <zipfiles.html>`_
|
|
This module implements a zip archive creator/reader/modifier.
|
|
|
|
Wrappers
|
|
========
|
|
|
|
Note that 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.
|
|
|
|
* `posix <posix.html>`_
|
|
Contains a wrapper for the POSIX standard.
|
|
* `windows <windows.html>`_
|
|
Contains a wrapper for the Win32 API.
|
|
* `shellapi <shellapi.html>`_
|
|
Contains a wrapper for the ``shellapi.h`` header.
|
|
* `shfolder <shfolder.html>`_
|
|
Contains a wrapper for the ``shfolder.h`` header.
|
|
* `mmsystem <mmsystem.html>`_
|
|
Contains a wrapper for the ``mmsystem.h`` header.
|
|
* `ole2 <ole2.html>`_
|
|
Contains GUIDs for OLE2 automation support.
|
|
* `nb30 <nb30.html>`_
|
|
This module contains the definitions for portable NetBIOS 3.0 support.
|
|
* `cairo <cairo.html>`_
|
|
Wrapper for the cairo library.
|
|
* `cairoft <cairoft.html>`_
|
|
Wrapper for the cairoft library.
|
|
* `cairowin32 <cairowin32.html>`_
|
|
Wrapper for the cairowin32 library.
|
|
* `cairoxlib <cairoxlib.html>`_
|
|
Wrapper for the cairoxlib library.
|
|
* `atk <atk.html>`_
|
|
Wrapper for the atk library.
|
|
* `gdk2 <gdk2.html>`_
|
|
Wrapper for the gdk2 library.
|
|
* `gdk2pixbuf <gdk2pixbuf.html>`_
|
|
Wrapper for the gdk2pixbuf library.
|
|
* `gdkglext <gdkglext.html>`_
|
|
Wrapper for the gdkglext library.
|
|
* `glib2 <glib2.html>`_
|
|
Wrapper for the glib2 library.
|
|
* `gtk2 <gtk2.html>`_
|
|
Wrapper for the gtk2 library.
|
|
* `gtkglext <gtkglext.html>`_
|
|
Wrapper for the gtkglext library.
|
|
* `gtkhtml <gtkhtml.html>`_
|
|
Wrapper for the gtkhtml library.
|
|
* `libglade2 <libglade2.html>`_
|
|
Wrapper for the libglade2 library.
|
|
* `pango <pango.html>`_
|
|
Wrapper for the pango library.
|
|
* `pangoutils <pangoutils.html>`_
|
|
Wrapper for the pangoutils library.
|
|
* `gl <gl.html>`_
|
|
Part of the wrapper for OpenGL.
|
|
* `glext <glext.html>`_
|
|
Part of the wrapper for OpenGL.
|
|
* `glu <glu.html>`_
|
|
Part of the wrapper for OpenGL.
|
|
* `glut <glut.html>`_
|
|
Part of the wrapper for OpenGL.
|
|
* `glx <glx.html>`_
|
|
Part of the wrapper for OpenGL.
|
|
* `wingl <wingl.html>`_
|
|
Part of the wrapper for OpenGL.
|
|
* `lua <lua.html>`_
|
|
Part of the wrapper for Lua.
|
|
* `lualib <lualib.html>`_
|
|
Part of the wrapper for Lua.
|
|
* `lauxlib <lauxlib.html>`_
|
|
Part of the wrapper for Lua.
|
|
* `odbcsql <odbcsql.nim>`_
|
|
interface to the ODBC driver.
|
|
* `zlib <zlib.nim>`_
|
|
Wrapper for the zlib library.
|
|
* `sdl <sdl.html>`_
|
|
Part of the wrapper for SDL.
|
|
* `sdl_gfx <sdl_gfx.html>`_
|
|
Part of the wrapper for SDL.
|
|
* `sdl_image <sdl_image.html>`_
|
|
Part of the wrapper for SDL.
|
|
* `sdl_mixer <sdl_mixer.html>`_
|
|
Part of the wrapper for SDL.
|
|
* `sdl_net <sdl_net.html>`_
|
|
Part of the wrapper for SDL.
|
|
* `sdl_ttf <sdl_ttf.html>`_
|
|
Part of the wrapper for SDL.
|
|
* `smpeg <smpeg.html>`_
|
|
Part of the wrapper for SDL.
|
|
* `cursorfont <cursorfont.html>`_
|
|
Part of the wrapper for X11.
|
|
* `keysym <keysym.html>`_
|
|
Part of the wrapper for X11.
|
|
* `x <x.html>`_
|
|
Part of the wrapper for X11.
|
|
* `xatom <xatom.html>`_
|
|
Part of the wrapper for X11.
|
|
* `xcms <xcms.html>`_
|
|
Part of the wrapper for X11.
|
|
* `xf86dga <xf86dga.html>`_
|
|
Part of the wrapper for X11.
|
|
* `xf86vmode <xf86vmode.html>`_
|
|
Part of the wrapper for X11.
|
|
* `xi <xi.html>`_
|
|
Part of the wrapper for X11.
|
|
* `xinerama <xinerama.html>`_
|
|
Part of the wrapper for X11.
|
|
* `xkb <xkb.html>`_
|
|
Part of the wrapper for X11.
|
|
* `xkblib <xkblib.html>`_
|
|
Part of the wrapper for X11.
|
|
* `xlib <xlib.html>`_
|
|
Part of the wrapper for X11.
|
|
* `xrandr <xrandr.html>`_
|
|
Part of the wrapper for X11.
|
|
* `xrender <xrender.html>`_
|
|
Part of the wrapper for X11.
|
|
* `xresource <xresource.html>`_
|
|
Part of the wrapper for X11.
|
|
* `xshm <xshm.html>`_
|
|
Part of the wrapper for X11.
|
|
* `xutil <xutil.html>`_
|
|
Part of the wrapper for X11.
|
|
* `xv <xv.html>`_
|
|
Part of the wrapper for X11.
|
|
* `xvlib <xvlib.html>`_
|
|
Part of the wrapper for X11.
|
|
* `libzip <libzip.html>`_
|
|
Interface to the `lib zip <http://www.nih.at/libzip/index.html>`_ library by
|
|
Dieter Baron and Thomas Klausner.
|