QWK (file format)
From Wikipedia, the free encyclopedia
QWK is file-based offline mail reader format that was popular among bulletin board system (BBS) users, especially users of FidoNet and other networks that generated large volumes of mail. QWK was originally developed by Mark "Sparky" Herring in 1987 for systems running the popular PCBoard bulletin board system, but it was later adapted for other platforms. During the height of bulletin board system popularity, several dozen offline mail readers supported the QWK format.
Contents |
[edit] Description
Like other offline readers, QWK was similar in operation to the Fidonet: messages for a particular user are gathered up by the BBS-side QWK software, compressed using an application such as PKZIP, and then transferred to the user. This is usually accomplished via a "BBS door" program running on the BBS system. In the case of QWK, the messages were placed in a single large file that was then bundled with several "control" files and then compressed into a single archive with the .QWK file extension (and typically the BBSes "id" name as the base filename). The file normally sent to the user automatically using the self-starting feature of the ZModem protocol, although most QWK doors allowed a selection of protocols to be used.
Once the resulting file has been received by the user, the steps are reversed to extract the files from the archive and then open them in a client-side "reader". Again, these individual steps are typically automated to a degree, meaning that the user simply has to invoke the door software on the BBS and then run the client, the intermediary steps being automated. QWK originally did not include any functionality for uploading replies, but this was quickly addressed as QWK became more popular. QWK placed replies in a .REP file (again, typically with the BBSes "id" as the name) that was exchanged automatically the next time the user called in.
QWK clients varied widely in functionality, but all of them offered basic e-mail and public forum support. Prior to the introduction of QWK and similar systems, it was not uncommon for users with large message volumes to set up their own FidoNet node to quickly gather their mail, but QWK dramatically reduced the required setup, and dramatically increased the number of users of offline mail.
QWK Format was used for years similarly to Fido Technology Network (FTN) for BBS networks, as a means of message forum syndication, by software including Synchronet, Wildcat Winserver and others.
[edit] Architecture
As QWK was originally designed to work with PCBoard, the system bears many marks of PCBoard's layout for message and forum files. For instance, QWK uses one file to contain the messages, and another that is used to index their headers. QWK was essentially a way to collect messages from PCBoard's internal files, and re-package them into a single file.
The hard-coding of much of QWK system to PCBoard formats led to a number of problems. In particular, the QWK system had a number of hard-coded limits to various fields, notably things like the subject line. This made it less than useful for non-FidoNet messages, and led to the creation of the SOUP format. SOUP was essentially a version of QWK supporting UseNet messages, extending the length of existing fields, as well as the adding several new fields to support UseNet features threading and routing. SOUP, however, was less widely used than the QWK format.
Probably the largest issue for implementing QWK is the *.NDX file which contains a record specifier in the old 4-byte MSBIN float format. This format was used by early Microsoft BASIC compilers, but has been displaced by the IEEE 754 format. Further, since it is a four-byte value, and is used to represent an integer, a float is a poor choice where a 32-bit integer would have been much better. As a result of this, many pieces of software do or have incorrectly generated or used the *.NDX file, and others ignore it completely.