Developer(s) | Anthony Green |
---|---|
Initial release | October 7, 1996 |
Stable release |
3.2.1 / November 12, 2014
|
Written in | C, Assembly language |
Operating system | Unix-like, Microsoft Windows, OS X, iOS, BareMetal OS |
Type | Runtime library |
License | MIT License |
Website | sourceware |
libffi is a foreign function interface library. It provides a C programming language interface for calling natively compiled functions given information about the target function at run time instead of compile time. It also implements the opposite functionality: libffi can produce a pointer to a function that can accept and decode any combination of arguments defined at run time.
libffi is most often used as a bridging technology between compiled and interpreted language implementations. libffi may also be used to implement plug-ins, where the plug-in's function signatures are not known at the time of creating the host application.
Notable users include Python, Haskell, Dalvik, F-Script, PyPy, PyObjC, RubyCocoa, JRuby, Rubinius, MacRuby, gcj, GNU Smalltalk, IcedTea, Cycript, Pawn, Squeak, Java Native Access, Common Lisp (via CFFI), Racket,Embeddable Common Lisp and Mozilla.