译自:
CFFI是Common Foreign Function Interface的简称。
简介
CFFI,即公用外部函数接口,号称是Common Lisp的一个轻便的外部函数接口。CFFI库由一个具体的Lisp实现的后端和一个轻便的前端组成,后端实现在CFFI—SYS包内的,前端实现在CFFI包内。
CFFI-SYS后端包通过Lisp实现对本地FFI定义了一个底层接口支持。它提供了一些操作符来分配和取消外部内存引用、调用外部函数和加载共享库。CFFI前端提供了定义外部函数、结构体、typedef变量、枚举型变量等的声明接口。它们通过使用底层操作符的轻便的ANSI CL来实现,这些底层操作符由CFFI-SYS包导出。
特性
CFFI的主要特性包括:
- 可扩展的外部类型系统;
- 回调支持;
- 支持外部字符串编码;
- 向ABCL、Allegro CL、Corman CL、CLISP、CMUCL、Digitool MCL、ECL、LispWorks、Clozure CL、SBCL、MKCL和the Scieneer CL提供接口;
- groveller——一个外部库声明工具;
- 通过使用libffi库支持传递结构体类型数据;
- 拥有一个UFFI兼容层;
开始
最新的版本已经发布了,这里是。如果需要安装说明的话,请翻阅CFFI用户手册章节。如果你是初次接触专业的CFFI或一般化的FFIs接口,那么请查看章节。