openGiggle


Ben Charlton (ben@spod.cx) and Theo Zourzouvillys (theo@crazygreek.co.uk)

v. 0.1 - 27th May 2001
Giggle - An open protocol for delivering giggles over a network

1. Introduction

2. The Protocol

3. The Server

4. The Clients

5. Todo list

6. Credits

7. Other Giggle Servers

8. Download


1. Introduction

The giggle protocol has been developed after literally man-minutes of discussion and coding. An extension of current, yet limited internet standards we felt it necessary to create a new one, for the purposes of distributed giggling. Naturally, much like the act of a giggle itself all details and code for the giggle protocol are completely opensourced, and available from this webpage, free for all to download.


2. The Protocol

The giggle protocol is this essence of simplicity - one of it's strengths, and making cross platform development extremely straightforward, and allowing future extensions.

To initialise a giggle session, a tcp connection is opened to the giggle server on the giggle port - port 4700 by default.

The server will then wait for a client identification string followed by a CRLF. This string should be of the format GIGGLE/1.0 CLIENTID\r\n depending on the version of the protocol requested. The CLIENTID can be any string of the client author's choosing. The client must then send another CRLF to the server, with nothing else on the line. This allows for support for additional headers for later extensions of the protocol. The server will then return an appropriate giggle message.

The format of this message will inevitably change as the protocol is improved, but for version 1.0 it will be as follows:

serverstring\r\n
gigglestring\r\n

The server will then close the connection.

The client doesn't have to show the serverstring by default - only the gigglestring, but should include an option to show it on request

If you have any suggestions or ideas for further developments for the giggle protocol, let us know and we'll see about getting some discussions going about the future directions of the giggle protocol.


3. The Server

The server can, for most purposes just be started once untarred, and it will start to function as a giggle server, however you may find you want to customise the server options. Edit the giggled file with your favourite text editor, and there are a number of variables you can change.

$serverstring is the first line that is sent to the giggle client. It's up to the person running the server what it says - it allows a little customisation for each different server. Please keep this to 1 line.

$gigglefile is a plain text file that contains the giggle messages. 1 message per line. It'll normally be ok to leave this as is.

$serverport sets the port that the giggle server listens to by default.

$pidfile contains the pid of the server - useful if you want to write a rc script to control the server.

$logfile is the file the server logs it's connections to. This is of a fixed format:
DD/MM/YY "Clientstring" 1.0 IP
where Clientstring is the name reported by the client (if known), 1.0 is the protocol version number, and the IP is the IP of the person connecting to the server.

$daemon controls if the server will fork itself into the background. Set this to 0 if you want it to run as a normal process.


4. The Clients

giggle - The original unix giggle client. Takes 2 optional arguments server name to connect to, and port to connect to.
eg: giggle giggle.opengiggle.org 4700
If not supplied the client will default to giggle.opengiggle.org at port 4700

giggle.cgi - A web based perl cgi script to put on your webpage. Simply change $remote_host and $remote_port to point to the giggle server of your choice, set executable, and you should have a nice web based giggle client for people to play with. Click here for a demo.


5. Todo list


6. Credits


7. Other giggle servers

If you are running a giggle server, and would like to have it listed on this page, email us

8. Download

So, you actually want to use giggle? Good on you. Grab the relevant files here.

v0.1 bundle. This contains the unix client and server.
v0.1 CGI client. The web based client.
pyGiggle by Steven Adams. This is a very neat client written in python, and includes many handy runtime options.
pyggle by Adam Sampson. An all-in-one giggle client and server written in python.
Another pyGiggle by Alex Flinsch. A nice simple giggle giggle client, written in python
wingiggle by Jason Hill is the first windows giggle client we've recieved.

If you have any contributions such as improvements to the server, or additional clients, let us know and we'll happily link to them.
Ben Charlton <ben@spod.cx>
Hosted by notnet

Valid HTML 2.0!