https://github.com/hanshuebner/rasselbock
http server written in VAX LISP
https://github.com/hanshuebner/rasselbock
lisp vax
Last synced: 2 months ago
JSON representation
http server written in VAX LISP
- Host: GitHub
- URL: https://github.com/hanshuebner/rasselbock
- Owner: hanshuebner
- Created: 2018-08-09T09:10:20.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-08-13T09:28:09.000Z (over 6 years ago)
- Last Synced: 2024-12-25T20:42:37.077Z (4 months ago)
- Topics: lisp, vax
- Language: Common Lisp
- Size: 163 KB
- Stars: 11
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# rasselbock - A http server written in VAX LISP

rasselbock is a web server written in VAX LISP. I wrote it for fun,
to learn how to program in VAX LISP and in particular how to interface
with VMS system services and the Record Management Services (RMS).# Prerequisites
* OpenVMS V5.5-2 on VAX
* VAX LISP V3.1
* TCP/IP Services for OpenVMS (UCX) V4.2# Features
* Implements HTTP/1.0 (no persistent connections)
* Request routing based on HTTP method and URI
* Serves binary and text files from the file system# Code tour
## rasselbock.lsp
Implements listening to a TCP socket, accepting connections, reading
of request line and headers and writing of response headers.## response.lsp
Defines the structure of a response as returned from a handler.
## file-response.lsp
Implements reading of files from the VMS file system and writing to
the client socket. As VAX LISP does not provide efficient routines to
access binary files, such files are read using direct calls to the VMS
Record Management System (RMS).## dispatch.lsp
Routing of http requests to handlers. This is where requests to "/"
are rerouted to the index.html file.## utils.lsp
Utility functions and macros not specific to Rasselbock.
## vms.lsp
Structures, functions and macros to help interacting with VMS system
services.## parameters.lsp
Parameters global to Rasselbock (i.e. buffer sizes).
## editor-commands.lsp
Customizations to the VAX LISP editor to add features that I have
missed.