OVERVIEW
========
Ach is an Inter-Process Communication (IPC) mechanism and library. It
is especially suited for communication in real-time systems that
sample data from physical processes. Ach eliminates the Head-of-Line
Blocking problem for applications that always require access to the
newest message. Ach is efficient, robust, and formally verified. It
has been tested and demonstrated on a variety of physical robotic
systems. Source code for Ach is available under an Open Source
BSD-style license.

INSTALLATION
============
    ./configure && make && make install

See the INSTALL file for details.

DOCUMENTATION
=============
* Manual: http://code.golems.org/pkg/ach/manual
          and `./doc/manual/ach-manual.html`
* API docs: http://code.golems.org/pkg/ach/api
            and `./doc/html`
* Man Pages: http://code.golems.org/pkg/ach/man
             and `./doc/man`
* Papers: http://www.golems.org/projects/ach.html
* Example Code: `./src/ach-example.c`

See `./INSTALL` for details on generating the documentation.

MAILING LISTS
=============
* Announcements: http://groups.google.com/group/ach-announce
* General Help: http://groups.google.com/group/ach-help
* Development: http://groups.google.com/group/ach-devel

LANGUAGE BINDINGS
=================
Language bindings are included for Common Lisp, Python, and Java.

* Common Lisp bindings use CFFI and can be loaded with ASDF.

* Python bindings are a C extension module and a Python module 'ach'.
  This can be installed either via `make install` or via Python's
  distutils/pip.

* C++ bindings wrap the C API.
  See `./include/Ach.hpp`

* Java bindings via the Java Native Interface (JNI).
  See `./doc/javadoc` or
       http://code.golems.org/pkg/ach/javadoc/

See the INSTALL file for details.

FORMAL MODEL
============
Ach has been formally verified using the SPIN model checker.  This
formal model is included in the source distribution under the `./spin/`
directory.
