QWK (file format)

QWK is a 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. Herring died of a heart attack in 2020 after being swatted. During the height of bulletin board system popularity, several dozen offline mail readers supported the QWK format.

Description
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 BBS's "id" name as the base filename in the form mybbs.qwk. The file was normally sent to the user automatically using the self-starting feature of the ZModem protocol, although most QWK doors allowed a choice of other protocols.

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, wait for the download to complete, and then run the client. The various intermediary steps are 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 BBS's "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 greatly increased the number of users of offline mail.

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.

QWK was later modified to include extended fields that broke out of the original PCBoard limitations. The new format, known as Extended QWK but written as QWKE (pronounced quick-ee), added a series of kludge lines outside the header line of the message that allowed free-form text. For instance, if the SUBJECT header was longer than 25 characters, it 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.