Anet - Ada Networking Library
=============================

Anet is a networking library for the Ada programming language. The library
provides a BSD socket implementation and support for IPv4/UDP packet creation
and validation. It can be used to implement custom protocols on top of IPv4.
The library also provides a binding to the Linux Packet Filter (LPF) system.

The Anet BSD socket implementation has the following features:

* Supported socket families
  - IPv4 (AF_INET)
  - IPv6 (AF_INET6)
  - Packet (AF_PACKET)
  - UNIX domain (AF_UNIX)
* Supported socket modes
  - Stream (TCP)
  - Datagram (UDP)
* Support for IPv4/IPv6 multicast


Licence
-------
--------------------------------------------------------------------------------
Copyright (C) 2011, 2012 secunet Security Networks AG
Copyright (C) 2011, 2012 Reto Buerki <reet@codelabs.ch>
Copyright (C) 2011, 2012 Adrian-Ken Rueegsegger <ken@codelabs.ch>

Free use of this software is granted under the terms of the GNAT Modified
General Public License (GMGPL).
--------------------------------------------------------------------------------


Download
--------

Release version
~~~~~~~~~~~~~~~
The current release version of Anet is available at
http://www.codelabs.ch/download.

Verify a Release
~~~~~~~~~~~~~~~~
To verify the integrity and authenticity of the distribution tarball, import
the key http://www.codelabs.ch/keys/0x3DC359DEpub.asc and type the following
command:

  $ gpg --verify libanet-{version}.tar.bz2.sig

The key fingerprint of the public key ('0x3DC359DE') is:

  Key fingerprint = 752C 4EBC 115D 5EAD 75F7  0F34 A0AE 8AD7 3DC3 59DE

Development version
~~~~~~~~~~~~~~~~~~~
The current development version of Anet is available through its git repository:

  $ git clone http://git.codelabs.ch/git/anet.git

A browsable version of the repository is also available here:
http://git.codelabs.ch/?p=anet.git


Build
-----
To compile Anet on your system, you need to have the following software
installed:

* GNAT compiler:
  http://www.gnu.org/software/gnat/gnat.html

If you want to run the unit tests before installation of Anet (which is
recommended) you furthermore need to have the following installed:

* Ahven (Test-Framework):
  http://ahven.stronglytyped.org/

* socat (SOcket CAT)
  http://www.dest-unreach.org/socat/


Testing
-------
Anet contains a unit test suite which can be run by entering the following
command:

  $ make tests

All tests should be marked with *PASS* behind the test name.


Installation
------------
To install Anet on your system, type the following:

  $ make PREFIX=/usr/local install

If no `PREFIX` is specified, `$(HOME)/libraries` is used as install destination.
