Overview
Koffi is a fast and easy-to-use C FFI module for Node.js, featuring:
- Low-overhead and fast performance (see benchmarks)
- Support for primitive and aggregate data types (structs and fixed-size arrays), both by reference (pointer) and by value
- Javascript functions can be used as C callbacks (since 1.2.0)
- Well-tested code base for popular OS/architecture combinations
The following combinations of OS and architectures are officially supported and tested at the moment:
ISA / OS | Windows | Linux | macOS | FreeBSD | OpenBSD |
---|---|---|---|---|---|
x86 (IA32) 1 |
|
|
|
|
|
x86_64 (AMD64) |
|
|
|
|
|
ARM32 LE 2 |
|
|
|
|
|
ARM64 (AArch64) LE |
|
|
|
|
|
RISC-V 64 3 |
|
|
|
|
|
Go to the web site for more information: https://koffi.dev/
License
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Find more information here: https://www.gnu.org/licenses/
-
The following call conventions are supported: cdecl, stdcall, MS fastcall, thiscall.
↩ -
The prebuilt binary uses the hard float ABI and expects a VFP coprocessor. Build from source to use Koffi with a different ABI (softfp, soft).
↩ -
The prebuilt binary uses the LP64D (double-precision float) ABI. The LP64 ABI is supported in theory if you build Koffi from source (untested), the LP64F ABI is not supported.
↩