Overview

The Scheme Untergrund Networking Package (SUnet, for short) is a collection of applications and libraries for Internet hacking in Scheme. It runs under Scsh, the Scheme shell. SUnet includes the following components:

The SUnet Web server
This is a highly configurable HTTP 1.0 server in Scheme. The server is accompanied by some libraries which may also be used separately:
  • URI and URL parsers and unparsers

  • a library for writing CGI scripts in Scheme

  • server extensions for interfacing to CGI scripts

  • server extensions for uploading Scheme code

  • simple structured HTML output library

The server also ships with a sophisticated interface for writing server-side Web applications called SUrflets.

The SUnet ftp server
This is a complete anonymous ftp server in Scheme.
ftp client library
This library allows you to access ftp servers programmatically.
netrc library
This library parses authentication information contained in ~/.netrc.
SMTP client library
This library allows you to forge mail from the comfort of your own Scheme process.
POP3 client library
This library allows you to access your POP3 mailbox from inside scsh.
RFC822 header library
This library parses email-style headers.
Daytime and Time protocol client libraries
These libraries lets you find out what time it is without paying for a Rolex.
DNS client library
This is a complete, multithreaded DNS library.
An ls clone
This library displays Unix-style directory listings without running ls.

1.1  Obtaining the system

The SUnet code is available here. To run the code, you need version 0.6.6 or later of scsh.

1.2  How to install SUnet

Starting with version 2.1 SUnet conforms to the packaging proposal for scsh by Michel Schinz and needs Michel's installation library to install properly. For more information, please see http://lamp.epfl.ch/~schinz/scsh_packages/.

In short, this means that you can install SUnet by unpacking the SUnet tarball and issuing the following command in the created directory:

scsh-install-pkg --prefix /path/to/your/package/root

See the file INSTALL for the generic installation instructions for scsh packages.

You need to install version 4.9 of the SSAX package to use SUnet. SSAX is available from http://lamp.epfl.ch/~schinz/scsh_packages/.

1.3  How to use the packages

After installation, you can use the -lel command-line option to load the package definitions. If you installed SUnet including SUrflets (the default), you need to load SSAX as well:

atari-2600[72] scsh -lel SSAX-4.9/load.scm -lel sunet-2.1/load.scm
Welcome to scsh 0.6.6 (King Conan)
Type ,? for help.

Now, all structures defined by SUnet and SSAX are available:

> ,open ftp
Load structure ftp (y/n)? y
[netrc netrc.scm]
[ftp ftp.scm]
> call library code
> ,exit
atari-2600[73]