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. Alternatively, if you are using Debian or Ubuntu, you can use the golems.org APT repo. 1. Add the following to /etc/apt/sources: deb http://code.golems.org/debian squeeze golems.org (substitute the codename for your distribution in place of squeeze, e.g. wheezy, precise) 2. `sudo apt-get update && sudo apt-get install libach-dev ach-utils ach-dkms` 3. `sudo dpkg-reconfigure ach-utils` DOCUMENTATION ============= * Manual: http://code.golems.org/pkg/ach/manual and `./doc/manual/ach-manual.html` * API docs: http://code.golems.org/pkg/ach/api * 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` 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.