Background

Every Common Lisp implementation has a method for interfacing to C-language compatible libraries. These methods are often termed a Foreign Function Library Interface (FFI). Unfortunately, these methods vary widely amongst implementations, thus preventing the writing of a portable FFI to a particular C-library.

UFFI gathers a common subset of functionality between Common Lisp implementations. UFFI wraps this common subset of functionality with it's own syntax and provides macro translation of uffi functions into the specific syntax of supported Common Lisp implementations.

Developers who use UFFI to interface with C libraries will automatically have their code function in each of uffi's supported implementations.