\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: