\chapter{Overview}\label{sec:intro}
\section{What's in sunet?}

The Scheme Underground Network Package contains a set of libraries for
doing Net hacking from Scheme/scsh. It includes:
   
\begin{description}
\item[SMTP client library]
  Forge mail from the comfort of your own Scheme process.
          
\item[RFC822 header library]
  Read email-style headers. Useful in several contexts (smtp, http,
  etc.)
          
\item[Simple structured HTML output library]
  Balanced delimiters, etc.
          
\item[The SUnet Web server]
  This is a complete implementation of an HTTP 1.0 server in Scheme.
  The server contains other standalone packages that may separately be
  of use:
  \begin{itemize}
  \item URI and URL parsers and unparsers.
  \item A library to help writing CGI scripts in Scheme.
  \item Server extensions for interfacing to CGI scripts.
  \item Server extensions for uploading Scheme code.
  \end{itemize}            
\end{description}
                                
%
\section{Obtaining the system}

The network code is available
\urlhd{http://www.scsh.net/sunet/}{here}{from
  \url{http://www.scsh.net/sunet/}}.
To run the server, you
need version 0.6.3 or later of \urlhd{http://www.scsh.net/}{scsh}{scsh
  from \url{http://www.scsh.net/}}.
Beyond actually running the server, the separate parser libraries and
other utilites may be of use as separate modules.

The SUnet package contains following parts:
%
\begin{itemize}
\item Several servers (HTTP, CGI, FTP)
\item Several clients (to FTP, SMTP, POP3, NTP)
\item procedures to handle URIs
\item procedures to handle RFC822 headers
\item analogue of \verb|ls| for scsh
\item {\dots}
\end{itemize}

\section{How to use the packages}

Scsh is started in the SUnet top-level directory. Then, the
description file of the modules is loaded and the \texttt{ftp} module
is opened (to use a ftp client). After the things are done, scsh is
finished via the \verb|,exit| command.
\begin{alltt}
atari-2600[72] scsh-0.6.2
Welcome to scsh 0.6.2 (Gambit-C 4.0)
Type ,? for help.
> ,config ,load packages.scm
modules.scm
> ,open ftp
Load structure ftp (y/n)? y
[ecm-utilities ecm-utilities.scm]
[netrc netrc.scm]
[ftp ftp.scm]
> ; do something nasty
> ,exit
atari-2600[73]
\end{alltt}

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "man"
%%% End: 
