Skip to main content

Crate equilibrium_ffi

Crate equilibrium_ffi 

Source
Expand description

equilibrium-ffi — Automatic C FFI generation

This crate auto-detects C-compiling languages (V, Zig, C++, C#, etc.), compiles them to C intermediate representation, and generates Rust bindings so you can call foreign code like native modules.

§Quick Start

use equilibrium_ffi::load;

let lib = load("native/math.c")?;
println!("{}", lib.output_path.display());

§Supported Languages

LanguageCompilerC Backend
V (Vlang)vv -o output.c -backend c
Zigzigzig build-obj -femit-asm or C export
C/C++clang/gccNative
C#csc/monoP/Invoke + Native AOT
Rustrustccbindgen

Structs§

AutoBindingOptions
Options for automatic binding generation.
BindingOptions
Options for binding generation.
CompileResult
Result of a successful compilation.
ExportDiscovery
ExportOptions
GeneratedBinding
A generated Rust binding.
GeneratedImport
GenerationResult
Result of generating bindings for multiple libraries.
ImportOptions
LanguageInfo
Information about a detected language.
LibraryBindingResult
Result of generating bindings for a single library.
LibraryDiscovery
A discovered C library with its headers.
LibraryScanner
Scanner for discovering C libraries in a directory tree.
LoadOptions
Options for loading a foreign module.
LoadedModule
Result of loading a foreign module.

Enums§

CompileError
Error during compilation.
ExportError
ExportSource
Language
Supported languages that can be compiled to C.
LoadError
Errors that can occur when loading a module.

Functions§

compile_batch
Compile multiple files to C.
compile_to_c
Compile a source file to C intermediate representation.
detect_language
Detect the language of a source file based on extension.
discover_exports
discover_exports_with_options
find_compiler
Check if a compiler is available on the system.
generate_bindings
Generate Rust bindings from a C header file.
generate_imports
load
Load a foreign source file — compiles, generates bindings, returns ready-to-use module.
load_with_options
Load with custom options.
scan_c_libraries
Scan a directory for C libraries and generate bindings.
scan_directory
Scan a directory and detect all source files with their languages.