IPC for Real-Time Robot Control
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
benchmark Use Alexandria MEAN and MEDIAN functions Jul 2, 2015
cpp Move C++ defs to header and remove C++ shared library Jan 31, 2015
data Fix zsh help text Feb 9, 2015
debian Build Debian package Feb 3, 2015
doc Add warning to pass ach_channel_t by reference Apr 5, 2016
include Update copyright info Apr 24, 2015
java Update copyright license and email Feb 2, 2015
lisp Update copyright license and email Feb 2, 2015
m4 Initial LCM test Sep 24, 2013
python Add optional source lock when opening channels Feb 10, 2015
spin authors, copying, headers, for make-common, amino, ach, somatic Sep 21, 2011
src Fix error message Jul 6, 2016
.gitignore Fix ipcbench build Jul 2, 2015
.gitmodules Remove old Makefile Mar 10, 2012
AUTHORS Update AUTHORS and COPYING Jan 3, 2015
CMakeLists.txt.deprecated Deprecate building via CMake Feb 2, 2015
COPYING
ChangeLog Initial LCM test Sep 24, 2013
Doxyfile Documentation update Feb 3, 2015
INSTALL Deprecate building via CMake Feb 2, 2015
Makefile.am Fix dist generation Jul 6, 2016
NEWS Update NEWS Feb 3, 2015
README Remove instructions for defunct apt repo Nov 6, 2017
README.md Update README Sep 28, 2013
README.old Remove instructions for defunct apt repo Nov 6, 2017
TODO Add heavily concurrent stress test Jan 28, 2015
ach.pc.in Add pkg-config file May 26, 2013
achlog.py Update copyright license and email Feb 2, 2015
achpipe Disable unused configure tests Nov 16, 2012
achtooltest Port achtooltest to Solaris 9 /bin/sh Oct 22, 2011
configure.ac Fix ipcbench build Jul 2, 2015
doxygen.am Autotooled Doxygen Mar 12, 2012
manifest.xml Remove bogus ROS deps Oct 3, 2011
pycompile ach feature: python subscription support Jan 7, 2010
test-achcop Add achcop test script May 16, 2013

README.md

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

See ./INSTALL for details on generating the documentation.

MAILING LISTS

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.