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.
btrfsutil
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