|  |  | 
 
 A S-Lang module is defined to be a shared object, usually written in C, that
 is dynamically linked into a S-Lang application during runtime via the
 S-Lang import statement.  Such modules are useful because they
 allow S-Lang intrinsics and variables to be shared between
 applications that support dynamic linking.
 See http://space.mit.edu/cxc/software/slang/modules/, which provides
 useful guidelines for the creation of modules, a longer essay on why
 modules are considered useful, and links to additional modules.
 
 There are a growing number of modules for the S-Lang interpreter.
 Here are some listed by functionality.
 
 
 Communication Modules
 
  curl
    The cURL provides a powerful but simple to use
    interface to a variety of internet communication protocols.
  serialA module that provides access to the serial port.
    Available from http://laurent.perez2.free.fr/comp/slang/modules/modules.html.
  sldtdiA module to talk to FTDI USB chips using libftdi.
    Available from http://laurent.perez2.free.fr/comp/slang/modules/modules.html.
  socket
   This module provides an interface to the socket library.
   It is part of the S-Lang distribution.
  xpaProvides XPA interprocess communication with SAOds9
   controller.  Available from http://space.mit.edu/cxc/software/slang/modules/xpa/.
   
 Database and File Format Modules
 
  json
    Read write json formatted files.  It is part of the S-Lang distribution.
  netcdf
    This module adds support for reading and writing netCDF files to
    the interpreter.  Available from https://www.jedsoft.org/snapshots/.
  cfitsio
    This module makes use of the cfitsio library to read and write
    FITS files.  Available from http://space.mit.edu/cxc/software/slang/modules/cfitsio/.
  csv
    A module that reads/writes CSV (comma separated values) and TAB
    delimited files.  It is part of the S-Lang distribution.
  mysqlclient
    A mysql client module.  Available from https://bitbucket.org/pboekholt/mysqlclient.
  slexpat
    An XML parsing module.  Available from https://bitbucket.org/pboekholt/slexpat.
  slgdbmThis module provides access to gdbm databases.
    Available from https://bitbucket.org/pboekholt/slgdbm.
  slhfThis module allows one to read/write HDF5 files.
    Available from http://space.mit.edu/cxc/software/slang/modules/slh5/.
  slsqliteThis module wraps the sqlite3 database
  library.  Available from https://www.jedsoft.org/snapshots/.
  sltdbThis module provides access to TDB databases.
    Available from https://bitbucket.org/pboekholt/sltdb.
   
 Distributed Computing Modules
 
  pvm
    This module makes use of the the Parallel Virtual Machine library
    to distribute calculates across a network.  See
    http://space.mit.edu/cxc/software/slang/modules/pvm/ for more information.
   
 Image, Graphics, Computational Geometry, and GUI Modules
 
 grace
  This modules makes use of the popular Grace plotting program.  See
  the Grace Plotting Module page for more information.
  gtk
   This module provides access to the GIMP Tool kit.  Available from
   http://space.mit.edu/~mnoble/slgtk/.
 histogram
   Images can be thought of as 2d histograms.  For example, a CCD
   camera produces an image by histogramming the charge released when
   photons interact with the CCD.  Available from
   http://space.mit.edu/cxc/software/slang/modules/hist/.
   png
   This is a module that makes use of
   libpng to provide
   functions for reading and writing PNG files.  It is part of the S-Lang distribution.
   slgtkdataboxBindings for GtkDatabox, a Gtk
   widget for data plotting. Available from http://laurent.perez2.free.fr/comp/slang/modules/modules.html.
 SLxfig
  SLxfig is a package that
  makes use of fig2dev (an xfig utility) to produce publication
  quality plots.  It provides a contour module.
  volviewA 3d volume visualization module.  Available from
   http://space.mit.edu/cxc/software/slang/modules/volview/
 voronoiA voronoi tesselation module.  Available from
 https://www.jedsoft.org/snapshots/. 
 Numerical and Data Analysis Modules
 
  gsl
    This module wraps the GNU Scientific Library to provide vectorized
    access to special functions, random numbers, FFTs, etc.
    Available from http://space.mit.edu/cxc/software/slang/modules/gsl/.
  histogram
    This is an extremely useful module for anyone analysing data.  It
    creates various types of one and two dimensional histograms.
    It is part of the S-Lang distribution.
  rand
    A random number/distribution module. It is part of the S-Lang distribution.
  stats
    This is a statistics module that provides various statistical
    tests (Kolmogorov-Smirnov, Mann-Whitney, Student, Kuiper, ...) and
    probability functions.  It is part of the S-Lang distribution.
   
 String Matching Modules
 
 onig
   This module provides an interface to the
   Oniguruma
   regular expression library.  It is part of the S-Lang distribution.
   pcre
   This is a module that interfaces to the
   Perl Compatible Regular Expression
   library.  It is part of the S-Lang distribution.
   slwildcard
   This module provides vectorized pattern matching.  Available from
   https://bitbucket.org/pboekholt/slwildcard.
  
 System-level Modules
 
 fcntl
   This module contains several functions to to allow an
   interpreter to manipulate file descriptors via the C fcntl function.
   It is part of the S-Lang distribution.
   ioctlA module that wraps the IOCTL system call.
   Available from http://laurent.perez2.free.fr/comp/slang/modules/modules.html.
 select
   A module implementing an interface to the "select" system call.
   It is part of the S-Lang distribution.
   sysconfA module that interfaces to the POSIX sysconf and
 pathconf functions.  It is part of the S-Lang distribution.
 termios
   A module that provides access to the various termios functions,
   e.g., tcsetpgrp, tcflush, etc. It is part of the S-Lang distribution.
    
 Miscellaneous Modules
 
 base64A base64 encoder/decoder module.
 It is part of the S-Lang distribution.
 chksumA module that computes various checksums (MD5,
 SHA1...).  It is part of the S-Lang distribution.
 iconv
   This module wraps the
   GNU iconv library.
   It allows S-Lang scripts to easily perform character set
   conversions.
   slcgiThis module provides bindings to cgilib.  Available
   from https://bitbucket.org/pboekholt/slcgi.
   slcryptoThis module wraps some of the OpenSSL EVP
 library functions.  It is available from
 http://web.science.mq.edu.au/~arikm/code/slcrypto/slcrypto.tar.gz.
 slhenkeThis module is a high-level interface to the Henke
data tables and may be used to compute multilayer reflectivities.  See
this document for a first principles
derivation of electromagnetic reflection from a multilayer.
slgettext
   This modules adds gettextinternationization.  Available from
   https://bitbucket.org/pboekholt/slgettext.tessA regression-testing module.  Available from
   http://space.mit.edu/cxc/software/slang/modules/tess/.
 varray
   The varray module is simple interface to the mmap system call found on
   many Unix systems.  This module allows one to associate very large
   arrays with a file on disk.  It is part of the S-Lang distribution.
   zlib
   Ths module wraps the zlib compression library. It is part of the S-Lang distribution.
  
 
A number of the external modules are readily available to debian
users via the standard apt-get installmechanism.  These include: 
Finally, if you want to autogenerate a module, then use the
SLIRP code generator to
generate the module for you.
 |