CFFI, the Common Foreign Function Interface, purports to be a portable
foreign function interface, similar in spirit to UFFI.

Unlike UFFI, CFFI requires only a small set of low-level functionality
from the Lisp implementation, such as calling a foreign function by
name, allocating foreign memory, and dereferencing pointers.

More complex tasks like accessing foreign structures can be done in
portable "user space" code, making use of the low-level memory access
operations defined by the implementation-specific bits.

CFFI also aims to be more efficient than UFFI when possible.  In
particular, UFFI's use of aliens in CMUCL and SBCL can be tricky to
get right.  CFFI avoids this by using system area pointers directly
instead of alien objects.  All foreign function definitions and uses
should compile without alien-value compiler notes in CMUCL/SBCL.

Please consult the manual for further details, including installation
instructions.