
GNet README
-----------

GNet is a simple network library.  It is written in C,
object-oriented, and built upon GLib.  It is intended to be small,
fast, easy-to-use, and easy to port.  GNet comes with documentation
and examples.  It is licensed under the GNU Library General Public
Licence.

Features:
  * TCP "client" and "server" sockets
  * UDP and IP Multicast
  * Internet address abstraction
  * Asynchronous socket IO
  * Asynchronous DNS lookup
  * Byte packing and unpacking
  * URLs (Experimental)
  * Server and Conn objects (Experimental)
  * SOCKS support (Experimental)

GNet has been ported to Linux, *BSD, MacOSX, Solaris, HP, MacOS X, and
Windows.  It may work on other operating systems also.

GNet requires GLib 1.2, available at www.gtk.org.  Or, if you have a
system with packages (e.g., Red Hat or Debian), look for the latest
glib package.

Comments and questions should be sent to gnet@gnetlibrary.org.

The GNet homepage is at <http://www.gnetlibrary.org>.


Install
=======

In a nutshell: 
  > ./configure
  > make
  > make install

To force GNet to build against GLib 1.3/2.0, pass the --enable-glib2
to configure.  GNet will attempt to build against GLib 1.2 by default
and GLib 1.3/2.0 if 1.2 is not available.

If gethostbyname() is thread-safe, pass the
--enable-threadsafe-gethostbyname() to configure.  (If it is and you
don't do this, it will still function correctly.)

INSTALL is the standard autoconf INSTALL file.


Bugs
====

Bug reports should be submitted through <http://bugzilla.gnome.org>.


Mailing lists
=============

Go to <http://www.gnetlibrary.org/mailman/listinfo/> to join the
mailing lists and view the archives.

Name			Purpose
gnet-announce		Announcements about GNet
gnet-discuss		Discussion of GNet for users and programmers
gnet-dev		Discussion of GNet for the developers of GNet


Developer info
==============

API documentation lives on the GNet homepage (specifically, at
<http://www.gnetlibrary.org/docs>)

NOTE ON EXPERIMENTAL FEATURES.  The URL, Server, and Conn modules are
experimental and part of the IOChannel module is also experimental.
The GNet development team believes these modules are useful and
usable, but are not yet completely confident in them.  The API to
these modules may change and there may still be bugs in them.  For
example, the URL module is incomplete and the new IOChannel functions
should be audited again.  If you are feeling adventurous and want to
use these functions, define GNET_EXPERIMENTAL.  Otherwise, your
compiler should warn or fail if they are used.  We welcome bug fixes,
improvements, and comments on the experimental modules.  Our hope is
that adventurous programmers will use these modules and help in their
further development.

The Nylon SOCKS server is required for SOCKS server socket support.
SOCKS server sockets are weird.  Marius, a Nylon and GNet developer,
changed the semantics in Nylon to make SOCKS integration in GNet
easier/possible.  GNet SOCKS clients should work with any SOCKS
server.  The Nylon homepage is
<http://mesh.eecs.umich.edu/projects/nylon/>.


Hacking
=======

If you are interested in contributing to GNet, please see 'HACKING'.
This includes information on how to get GNet from the repository and
how to submit patches.


License
=======

Read COPYING for information on the license.  GNet is under the GNU
LGPL.  In a nutshell: You can share GNet with your friends and make
changes to it, but it's not our fault if it breaks your computer.


Applications that use GNet
==========================

eDonkey2000 GTK frontend
  eDonkey2000 (DFS) frontend
  http://ed2k-gtk-gui.sourceforge.net

Gabber			
  messaging/chat program
  http://gabber.sourceforge.net

Gnome Chinese Checkers
  board game
  http://gchch.sourceforge.net/

GnomeICU
  Gnome ICU client
  http://gnomeicu.sourceforge.net

Jungle Monkey	 	
  distributed file sharing program
  http://www.junglemonkey.net

PreViking
  telephony middleware
  http://www.bellworldwide.net/previking/

Ximian Gnome Installer and Red Carpet
  software package management
  http://www.ximian.com

