"RPM" is a Recursive Processor for Macros. It is a fully featured stand-alone HTTP server mainly intended for intranet applications, but its real power lies in its ability to parse server-side macros, written in a specially designed SGML file format. Whenever a client requests one of these files, they see HTML that is generated by the server from a ".rpm" SGML file. Normally, the browser or client-side application processes the HTML. The ".rpm" files are simply the server-side equivalent to the HTML language. The RPM language can be extended freely without worrying about compatibility problems. This is because before the ".rpm" file ever leaves your server, it has already been converted into HTML, readable by any Web browser.
If you do not yet have RPM on your system, first check out the Installation and Administration Manual. Most commonly, you will only need to write user-level ".rpm" files, using just the existing macros, the syntax and design is similar enough to HTML that a basic understanding of HTML, and a quick reading of the User's Manual for RPM is all that's needed. The existing macros are designed to provide the same capabilities as CFHT's xform. The ".rpm" files are typed in with your favorite text editor and are concise and easy to maintain. They can be programmed to do things like pass user input to a shell script, or some other program. The advantage over CGI is that the shell script does not have to parse the strange url-encoded strings sent by the browser, nor does it have to spit out HTML. It simply carries out some function or prints new values of the variables and RPM reconstructs the HTML.
The RPM server consists of only a single binary, and a single configuration file that you must create once. If you are looking for information on how to install these, or how to set up various operating parameters, then look at:
- RPM Installation and Administration
- (Downloading, Installation, Configuration, Log file set-up)
For information on how to write a ".rpm" file, or how to access some of the server's built-in functions, check out:
- RPM User's Manual
- (Server URL-Directives, Builtin Image Generation, RPM-file Syntax, RPM-file Variables, RPM-file Tags)
For information on how to hack on RPM itself, read and understand all of the above first, then take a look at:
- RPM Technical Info
- ( Adding new methods of getting variables, Adding macros for building widget types, How information gets to and from the GUI)
See also information on the Data Structures used by RPM.
If you find a bug, send me mail, but be sure to check the following document carefully to be sure it's not already a known problem listed here:
RPM Bugs and Limitations