RexxHTTP


RexxHTTP

RexxHTTP is hosted on:

The documentation copy at https://rexx.epbcn.com/rexxhttp/ uses the Rexx Highlighter to display Rexx programs, and therefore has better highlighting. On the other hand, the copy at https://github.com/JosepMariaBlasco/rexxhttp/ has version control, bug reporting, and all the features offered by GitHub.

What it is

RexxHTTP is a servlet processor for ooRexx: it lets you write web servlets as ordinary ooRexx programs running under CGI on Apache. A servlet receives a request and a response object and produces its body with ordinary Say or CharOut; the request and response objects are also placed in the environment as .request and .response.

The central design idea is lazy headers: a servlet may write body content before fixing the response headers, and the headers are emitted on the first flush. This is made possible by a buffered output stream that sits between the servlet and Apache.

RexxHTTP is written by Josep Maria Blasco <> and distributed under the Apache 2.0 license. Some files may contain contributions from other authors, as attributed in the corresponding copyright notices.

Download

https://rexx.epbcn.com/rexxhttp/rexxhttp-latest.zip.

Requirements

  • ooRexx 5.3.0 or later.
  • Apache 2.4 or later, with cgid and actions enabled.

History

RexxHTTP grew out of a servlet processor first published in 2006 (version 0.1, with a full 73-page manual) and rewritten in 2017 (version 0.2), which today serves some 40,000 URLs in production at epbcn.com and other sites. This release is a clean, distilled 1.0: the dead branches of the original (mod_rexx, OS/2, Microsoft IIS, the RSP page compiler) are gone, and the documentation describes only what is actually verified against the code.

Documentation

The manual is in manual/. It is written using the RexxPub publishing framework: a single Markdown file is rendered as a web page, and this same web page produces a print-quality manual when printed using the print menu of your browser.

Examples

You can also take a look at our examples (source code included).

Repository layout

  • src/ — the processor and its classes (RexxHTTP.rex, HTTP.Request.cls, HTTP.Response.cls, HTTP.OutputStream.cls, HTTP.Cookie.cls).
  • manual/ — the manual.
  • examples/ — the examples.
  • tests/ — the RexxHTTP test suite and a copy of the ooRexx test framework.

Some sites that use RexxHTTP