Synchronet


Synchronet is a multiplatform BBS software package, with current ports for Microsoft Windows, Linux, and BSD variants. Past versions also ran on MS-DOS and OS/2, but support for those platforms were dropped in version 3.0.

History

Synchronet was originally written by Rob Swindell due to his desire for certain features which WWIV lacked, such as support for multiple simultaneous nodes, batch uploads and bidirectional file transfer. The bulk of the programming for the first version of Synchronet was done during a two-month period in 1991 when Swindell was house-ridden while he recovered from surgery. The software was named for its ability to run synchronously on a network.
In July 1991 the author began running his own BBS, Vertrauen, on Synchronet. Initially, he had no intention of releasing Synchronet publicly, but as word of his software spread and he received offers to buy copies of Synchronet, he eventually relented, formed a company called Digital Dynamics, and sold copies of Synchronet at a price of $100 without source code, and $200 with source code. In April 1992, Swindell's employer went out of business and he began to rely exclusively on commercial sales of Synchronet for his livelihood, placing advertisements in the BBS-related magazines Boardwatch and BBS Callers Digest. The first copy of Synchronet sold through the magazine ads was in June 1992.
Synchronet was the first BBS package to support QWK message networking natively without requiring any external utilities, in version 1a revision 10, released June 25, 1992. It was also the first BBS package with RIP support, in version 1b revision 1, released January 23, 1993.
Interest in Synchronet began to dwindle in late 1994, finally becoming nonexistent in 1995. Digital Dynamics effectively went bankrupt in the fall of 1995. Despite this, a beta version of version 2.30 of Synchronet for MS-DOS and an alpha version for OS/2 were released in early 1996. In August 1996, Swindell announced the uncertainty of Synchronet's future. In 1997, version 2.30 of Synchronet was released as freeware, and the source code was released into the public domain later that year.
In April 1999, Swindell revived Synchronet development, revamping it considerably and converting much of the code to C++. Another version, 2.30c, was released in December 1999, fixing Y2K bugs and introducing some minor new features from the upcoming 3.x series. Version 3.00b was released June 25, 2000 and was the first official release of the 3.x series, featuring a native 32-bit Windows version and many new Internet-related features, such as a built-in telnet server. For this release, dial-up support was dropped making it a TCP/IP-only system. In October 2000, Synchronet was released under the terms of the GNU General Public License.
In late 2001, Stephen Hurd joined the project initially as *nix developer. He ported the BBS to FreeBSD and did much of the Linux development work. His first "big" contribution was an implementation of Borlands conio library to allow the configuration utilities which were originally written for DOS to run on the Unix-like platforms.
Around the same time, Swindell started embedding the SpiderMonkey JavaScript engine into Synchronet with an eye towards replacing the aging BAJA language which was used for most BBS customizations. While the BBS still requires BAJA scripts, much can be done with JavaScript. A socket object was added to the JavaScript engine and a "Services" server created which allowed simple TCP/IP services to be written easily. TCP/IP services written in JavaScript bundled with Synchronet include finger, gopher, IRC, and NNTP.
More internet services have been added in the native code: FTP, SMTP and POP3 by Rob Swindell and rlogin, SSH and HTTP by Stephen Hurd.
In an interesting full circle, direct dial-up support for Synchronet is available again as Rob Swindell wrote a modem to telnet gateway program for this purpose. Using this program, SysOps can once again offer their BBSes via direct modem-to-modem connections.

Sub projects

Libraries

SEXYZ

SEXYZ is an external file transfer program which supports X/Y/ZModem transfers. It was written to break the reliance on old DOS external protocols such as DSZ and CEXYZ. It supports TCP socket and stdio transfers. It is functional and very little additional development on this is planned.

SEXPOTS

SEXPOTS is a modem to telnet gateway. It accepts incoming modem calls and forwards them to the BBS via the Telnet or RLogin protocols.

SyncTERM

SyncTERM is terminal emulator which makes use of xpdev, ciolib, UIFC, and parts of SEXYZ and SEXPOTS. In addition to the platforms supported by Synchronet, it also runs on Solaris and Mac OS X.
Supported connectivity options are Telnet, rlogin, SSH, "Raw" sockets, standard modem connections and direct serial connections, and a pty interface on *nix. File transfer options include the ZMODEM, XMODEM and YMODEM transfer protocols

SyncDraw

SyncDraw is an ANSI art editor which was initially a cleanup of an old version of MysticDraw. It uses xpdev and ciolib but is not yet complete. It supports the use of TheDraw fonts, and can save to the Synchronet Control-A code format, but is generally considered too incomplete for serious usage.

Third-party software

The Synchronet project has shown a willingness to "adopt" third-party BBS related software into its CVS tree. Generally, the software is updated to use xpdev and run on the platforms that Synchronet does and then is left in the CVS tree without active development.

Domain Entertainment Doors

Domain Entertainment was once one of the major companies which wrote addons specifically for Synchronet. Some of their software has since been released as open source and has been imported into the Synchronet CVS tree under the xtrn directory.

Domain Poker

Domain Poker is a single/multi-player, real-time, 5 card draw poker game.
The game can have up to 6 players per table, and up to 25 tables. Each table
has a configurable bet limit, ante, and table limit. Tables can be password
protected for private games, and the "house" can take a configurable percentage
of the pot from games.
Single player games are played against the computer. The computer can be
turned off completely, or allowed to play only on certain tables. You also have the option to not allow the computer to be on password
protected tables.

The Beast's Domain

The Beast's Domain is a Multi-Player, Interactive, Real-Time, Rogue-like ANSI adventure game. The Beast's Domain can handle up to 250 simultaneous players.

OpenDoors

OpenDoors was one of the most popular C "door kits". Support for the DOOR32 drop file format as well as generic sockets was added by Rob Swindell and *nix compatibility was added by Stephen Hurd.

Other Doors

Other door sources that have been adopted include by developers: