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

GNet is a simple network library.  It is written in C,
object-oriented, and built upon GLib.  It is intended to be easy to
use and 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 sockets
  * High-level TCP connection and server objects
  * Asynchronous socket IO
  * Internet address abstraction
  * Asynchronous DNS lookup
  * IPv4 and IPv6 support
  * Byte packing and unpacking
  * URI parsing
  * SHA and MD5 hashes
  * Base64 encoding and decoding
  * SOCKS support

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 or 2.0/2.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.2, pass the --enable-glib1.2 to
configure.  GNet will attempt to build against GLib 2 by default and
GLib 1.2 if GLib 2 is not available.

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

Similarly, if getaddrinfo() and getnameinfo() are thread-safe, pass
the --enable-threadsafe-getaddrinfo() to configure

The flag --with-html-dir=DIR controls the directory the HTML
documentation goes into.  By default it will go into
DATADIR/doc/libgnet-X.Y, which DATADIR is /usr/local/share on most
Unix machines.  Use this flag if you want it to go somewhere else.


INSTALL is the standard autoconf INSTALL file.


Bugs
====

Bug reports should be submitted through <http://bugzilla.gnome.org>.
Our bug page is: 
   <http://bugzilla.gnome.org/buglist.cgi?product=gnet>

See BUGS for known bugs.


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
Lesser General Public License.


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

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

Gabber			
  instant messaging and chat
  http://gabber.sourceforge.net

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

Gnome Jabber
  instant messaging and chat
  http://gnome-jabber.sourceforge.net

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

MSI <http://msi.sourceforge.net> 
  multi-simulation interface

PAN
  Gnome newsreader
  http://pan.rebelbase.com

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

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

