ffi

This doc is about the Foreign Function Interface (FFI) features of the core.

Besides accessing system, OS, and external libraries via binding code (dynamically in Lisp, statically in Rust), we also expose parts of the core in a C-compatible fashion. In Lisp, we use the SB-ALIEN interface to load (with dlopen) and call foreign symbols. In Rust we mostly use rust-bindgen and the built-in rustc features.

Libraries

The following binding libraries are provided with supporting code. There is some cross-over between the Lisp and Rust bindings depending on what library features we need and where. Some of the bindings are very minimal or for experimental-use only only.

xkb

These bindings are actually directed at libxkbcommon instead of x11/xkb directly.

rocksdb

btrfs

The kernel headers btrfs and btrfs_tree will be wrapped at some point in addition to the userspace library (btrfsutil) documented below.

zstd

zstd compression bindings: https://github.com/facebook/zstd

tree-sitter

bindings to tree-sitter parser generator and language libraries: https://github.com/tree-sitter/tree-sitter