The scheme/foreign library enables the direct use of C-based APIs within Scheme programs – without writing any new C code. From the Scheme perspective, functions and data with a C-based API are foreign, hence the term foreign interface. Furthermore, since most APIs consist mostly of functions, the foreign interface is sometimes called a foreign function interface, abbreviated FFI.
Important: Many of the bindings documented here (the ones in sections with titles starting “Unsafe”) are available only after an (unsafe!) declaration in the importing module.