ffi
FFI is short for Foreign Function Interface, which is useful for linking to arbitrary C (and not only) libraries from Lisp code.

  • ah2cl - ah2cl (Another Header to Common Lisp converter) is a tool for parsing C header files and generating FFI bindings for CLISP and UFFI
  • bike - bike is a library which implements cross-platform Common Lisp interface to .Net Core platform, using lisp compatibility layers
  • c2ffi - c2ffi is a tool for extracting declarations from C source and header using Clang's AST
  • cffi-j - cffi-j is a set of CFFI bindings for the J programming language (libj.so library)
  • cffi-objects - CFFI-objects is a library that enhances CFFI with several new constructions to use when you need to work with complex structures or objects
  • cl-applescript - cl-applescript provides an FFI API for interfacing AppleScript and Common Lisp
  • cl-autowrap - cl-autowrap is a point-and-shoot tool for creating and distributing FFI wrappers
  • CL-ObjC - CL-OBJC is a portable common-lisp/objective-c bridge written using CFFI
  • CL-Pango - CL-PANGO is a cffi binding to the Pango text formatting library
  • cl-tc - cl-tc is a set of bindings for the Tokyo Cabinet database
  • cl-tk - CL-TK provides a simple bridge to Tcl/Tk
  • clave - The Common Lisp Audio Video Engine (CLAVE) is a Lisp FFmpeg interface
  • CLAW - Common Lisp autowrapping facility for quickly creating
  • CLERIC - CLERIC (Common Lisp Erlang Interface) is an implementation of the Erlang distribution protocol, comparable with erl_interface and jinterface
  • Cliconv - Cliconv is a simple FFI interface to the iconv library that lets Common Lisp programs translate byte sequences from/to different character encodings
  • CLLIB - CLLIB is a varied collection of Common lisp tools and routines in CLOCC
  • clTcl - clTcl provides an interface to Tcl/Tk via Tcl scripts embedded in Common Lisp
  • Cobstor - Cobstor is a tool and an API to seamlessly access legacy Cobol application files from Common Lisp
  • Common Lisp Library Audience Expansion Toolkit - FFI
  • cparse - cparse is a C header file parser for building FFIs
  • de.setf.thrift - de.setf.thrift is a binding for the Apache Thrift framework for scalable cross-language services development
  • de.setf.utility - de setf utility is a collection of Common Lisp utilities functions and several purpose-specific libraries
  • doors - Doors is an attempt to bring essential features of MS Windows (such as basic Windows API, COM and OLE) into Common Lisp
  • ffa - Foreign friendly arrays for Common Lisp
  • ffigen - FFIGEN (Foreign Function Interface GENerator) is a program suite that facilitates the writing of translators from C header files to foreign function interfaces for particular language implementations. -- FFIGEN Home Page
  • Foreign Structures By Value - Foreign Structures By Value (FSBV) is an FFI library that allows calling foreign functions that take or return foreign structures by value, as opposed to by reference (by pointer)
  • foreign-numeric-vector - foreign-numeric-vector is a package for working with numeric vectors stored in the foreign (non-Lisp) heap
  • Gelisp - Gelisp is an opensource, efficient, high-level API wrapping the Generic Constraints Development Environment (GECODE) for Common Lisp
  • lh-usb - lh-usb is a set of bindings for the Linux usbfs interface for writing usb device drivers from user-space Lisp code
  • Objective-CL - Objective-CL is a Common-Lisp/Objective-C bridge currently supporting a range of Lisp implementations on Mac OS X and GNUstep
  • perl-in-lisp - Perl-in-Lisp is a Common Lisp FFI interface to the Perl 5 API
  • Pyffi - Pyffi, inspired by Python-on-Lisp, is a Python programming language FFI for Common Lisp
  • Python-On-Lisp - Python-On-Lisp is a Python programming language FFI for Common Lisp
  • RCL - RCL is an FFI to communicate with the R statistics environment
  • rclg - An R (statistics programming language) FFI for Common Lisp
  • resolver - A UFFI interface to Linux's libresolv library (see resolver(3))
  • SWIG - SWIG is a (non-CL) tool that can generate FFI binding code from C/C++ header file declarations
  • uffi - CFFI is recommended as the replacement for UFFI.
  • Verrazano - Verrazano is no longer actively developed; see cl-autowrap (which uses c2ffi) or maybe SWIG.
  • Virgil - Virgil is a high-level and extensible FFI, built on top of CFFI and oriented towards marshaling lisp data into raw memory and back
  • WAAF-CFFI - WITH-ARRAY-AS-FOREIGN-POINTER - Allows Lisp arrays to be passed to foreign functions by copying their contents to malloc'ed foreign space, using only CFFI
  • winhttp - CFFI bindings to WinHTTP

Integrating with Java: (main topic: Java)

  • ABCL - Armed Bear Common Lisp (aka ABCL) is a
  • abcl-jazz - Code examples on to call the Java Swing API under ABCL to program GUIs
  • cloak - cloak is an experimental implementation of the JVM for SBCL on Linux/x86
  • CLplusJ - CL+J is an exact, safe and complete Common Lisp interface to Java through JNI
  • decaf - Decaf is an Java debugger GUI written in Lisp using CLIM
  • Foil - Foil (Foreign Object Interface for Lisp) consists of a protocol and a set of libraries that facilitate access to popular object runtimes, such as the JVM (Java) and the CLI/CLR (.NET), and their libraries, from Lisp
  • JACOL - The JACOL system can be used to link Java and Common Lisp applications
  • Jatha - Jatha is a Java library that implements a fairly large subset of Common LISP, including most of the datatypes (e.g
  • jfli - jfli provides comprehensive, safe, dynamic and Lisp-y access to Java and Java libraries as if they were Lisp libraries, for use in Lisp programs, i.e
  • jss - jss is an extension for ABCL that makes it easier for me(AlanRuttenberg) to write lisp code that calls java libraries
  • LinJ - Linj is a Common Lisp-like language that tries to be as similar to
  • Lisplets - Lisplets are Java Servlets that forward their requests, and gather their response headers, using s-expressions over sockets
  • Mark Davidson - I have been working with these infernal machines for over 22 years, and have dabbled with Lisp over time..
  • snow - Snow is a GUI description language for Java and Common Lisp, currently supporting the Swing UI library

Integrating with .NET: (main topic: .NET)

  • bike - bike is a library which implements cross-platform Common Lisp interface to .Net Core platform, using lisp compatibility layers
  • Foil - Foil (Foreign Object Interface for Lisp) consists of a protocol and a set of libraries that facilitate access to popular object runtimes, such as the JVM (Java) and the CLI/CLR (.NET), and their libraries, from Lisp
  • RDNZL - RDNZL (pronounced "Redunzl") enables Common Lisp applications to interact with dot-NET libraries

Of interest to FFI implementors may be Reini Urban's survey and thoughts of various FFI implementations (last modified: 2004-05-04).

One step beyond FFI is the programming language topic, which lists various programming languages implemented in Common Lisp.