QWK (file format)
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.
Like other offline readers, QWK gathered up messages for a particular user using BBS-side QWK software, compressed them using an application such as PKZIP, and then transferred them 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.
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.
QWK was later modified by the authors of Synchronet to include extended fields that broke out of the original PCBoard limitations. The new format, known as Extended QWK but written as QWKE and pronounced quick-ee, added a series of kludge lines outside the header area of the message that allowed free-form text. For instance, if the SUBJECT header line was longer than 25 characters, this was clipped to 25 characters in the header and then repeated in complete form in the message body. QWKE-aware reader software would notice the kludge fields and place them in the header display, non-aware software simply left the text in the body. More minor changes included small information packets travelling between the BBS and user.
Probably the largest issue for implementing QWK is the *.NDX file which contains a record specifier in the old 4-byte Microsoft Binary Format 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.
- Blue Wave, another offline format very similar to QWK
- SOUP, essentially the same idea as QWK but supporting UseNet rather than BBS systems
- ZipNews, used on BBS systems, but most similar to SOUP
- Peter Rocca, QWKE Specifications 1.02, 1997
- Weatherley, Rhys (1993-08-14). "Simple Offline USENET Packet Format (SOUP) Version 1.2". Archived from the original on 2008-05-09.
- What is ZipNews?