Qchat consists of three main components, described in the specification (Chapter 3, sections A, C and D). These three components are each implemented in a different way, based on the requirements of the component. The client is written as a Java applet, to provide cross platform and networking ability. The server is written as a Java text-mode application, allowing use of Java's networking abilities and use of the local file system. The third component group, the CGI applications, are written in C. This provides the speed necessary for this portion of the system. The different implementation methods and languages are described below.