Software Overview

Future Lab provides software under the terms of the General Public License (GPL). For a complete review of these concepts, refer to:

Most of the GPL software provided by Future Lab is written in C, although we will eventually post some software here that is written in other languages. We use C because it is fairly portable (if written correctly) and compact.

Future Lab GPL software is like building a house. Everything is built upon the foundation and many pieces interconnect. For this reason, a natural drawback is that pieces cannot easily be removed from the software.

Most applications are offered in a stand-alone version and a client/server version. The client/server version of the application is built using one of two methods of interprocess communication across multiple platforms:

Future Lab software is be offered in a source only version and a source with already compiled executable version. Not all platforms will have a source with executable version as we do not have access to all platforms.

This next section will briefly describe the GPL modules.

Library Modules

The foundation of our GPL software is the library. The library is made up of ten modules:

Parse Module

The parse module consists of functions that are mostly concerned with string parsing including words and command words.

File Input/Output

The file i/o module contains of functions that retrieve or send data to a file stream.

Personal Logging API

This module provides an API to log messages or information from the application program including shutting off the logging facility

System Logging API

This module contains an API that sends messages to the system logger. This system logging API also allows you to turn off system logging.

TCP Client Socket API

The functions in this module provide a TCP socket interface for a client program to access a TCP connection oriented server.

TCP Server Socket API

This module provides socket services for a TCP connection oriented server program.

TCP Low Level

The functions in this module provide a low level TCP interface that both client and server TCP API use.

TCP Configuration

This module manages TCP configuration data including port number and host name. With the introduction of socloc, this module is no longer use by any Future Lab GPL application but it is still included as it may be of some use.

IP Addressing

The functions in this module resolve an IP address from a host name, resolve a host name from IP address and determine whether a string contains a valid IP address.

Database Engine and API's

This category consists of the database engine module and interface API modules. The database engine is based on variable field/record length and typeless data. The following modules are included:

Socloc and API's

This section deals with the socket locate information. The important components are:

GPL Programs

System Logger

The system logger is a server that accepts messages and logs these messages into a system wide log file. The system logger can accept messages from many machines. The system logger allows you to re-route messages from many machines and applications and put the log in one place.

Database Server

The database server is a program that accepts database commands.

Database Command Line

This application is a command line interface program to the database engine. Both stand-alone and client/server versions are available.

Database Stress Programs

These programs verify the operation of the database engine by randomly picking a operation code and executing it.

Random Data Generator

This program generates random data to be used as test input data for other programs. The program can generate data with a variety of field and record delimiters. This program is also used to generate data for the Bbuuzzb database engine.

Resolve TCP Host Names and Addresses

This program will perform a forward and reverse TCP lookup on the IP address and host name. The program will use whatever TCP name resolution method that has been defined.

Socket Locate Server (Socloc)

This socket server keeps track of other socket servers in a network environment so that client applications do not need to know where a specific socket server is in order to connect to it.

Dumb Socket Server

This is a simple (quite dumb) socket server that is used for testing.

Command Line Interface to Dumb Socket Server

This client application is used to interface to the dumb socket server and also to the socket locate server.

Universal Socket Command Line Interface

This command line client application is used to talk to other socket servers and also to socket locate servers.

Future Lab Home | Contact Webmaster | Feedback

Copyright © 1999-2000 Future Lab Inc., Last Updated Jul 3, 2000