node-ffi-generator C接口自动生成JavaScript绑定工具

通过 Clang 解析 C 头文件的 node-ffi 接口生成器,node-ffi-generator挺适合懒得手撸绑定的场景。嵌入了 Clang,直接吃.h文件,吐出一堆能直接用在 Node.js 里的 JS 绑定,配合node-ffi用,省时又省力。

像你要对接一个老旧的 C 库,手写绑定麻烦还容易错,用它就方便。命令也不复杂:

node-ffi-generator \
  --file=source/my_header.h \
  --file=source/my_dir_of_headers \
  --src-root=source \
  --dest-root=js-bindings \
  --include=/usr/include \
  --include=/path/to/clang/...

它会把每个头文件都过一遍,解析出函数签名啥的,直接吐成 JS 代码,扔进js-bindings里就能用了。挺适合做快速原型,也方便后续维护。

不过要注意哦,Clang 相关路径最好配好,不然容易报错。而且你要绑定的 C 库也别太奇怪,不然 AST 结构搞不定。

如果你平时和底层 C 库打交道比较多,又刚好在 Node.js 里搞扩展,用这个工具能省下不少体力活,推荐一试。

zip
node-ffi-generator-master.zip 预估大小:62个文件
folder
node-ffi-generator-master 文件夹
folder
source 文件夹
folder
generate 文件夹
file
generate.cpp 2KB
folder
generator 文件夹
file
library_load_generator.cpp 4KB
file
generator_factory.cpp 2KB
file
interface_generator.cpp 7KB
folder
process 文件夹
folder
symbol 文件夹
file
fundamental_type_symbol.cpp 3KB
file
record_symbol.cpp 6KB
file
function_pointer_symbol.cpp 733B
file
typedef_symbol.cpp 1KB
file
function_symbol.cpp 2KB
file
array_symbol.cpp 385B
file
reference_symbol.cpp 661B
file
enum_symbol.cpp 1KB
file
lazy_symbol.cpp 679B
file
symbol.cpp 1KB
folder
filters 文件夹
file
include_symbols_in_lib.cpp 1KB
file
symbol_table.cpp 6KB
file
clang_facade.cpp 8KB
file
symbol_factory.cpp 13KB
folder
utility 文件夹
file
logger.cpp 1KB
file
main.cpp 7KB
file
generate_node_ffi_interface.cpp 707B
file
.gitmodules 711B
file
CMakeLists.txt 3KB
file
LICENSE 1KB
file
README.md 2KB
folder
libs 文件夹
folder
annex 文件夹
folder
filesystem 文件夹
folder
boostsystem 文件夹
folder
argumentative 文件夹
folder
boostpredef 文件夹
folder
tests 文件夹
folder
smoke 文件夹
file
run-test.sh 698B
file
used.h 128B
file
test-generated.js 126B
file
input.c 591B
folder
dir 文件夹
file
other-header.h 74B
file
input.h 2KB
folder
out 文件夹
file
used.js 616B
folder
dir 文件夹
file
other-header.js 525B
file
other.js 833B
file
index.js 3KB
file
input.js 5KB
file
other.h 204B
file
.gitignore 87B
file
package.json 830B
folder
include 文件夹
folder
ffigen 文件夹
file
generate_node_ffi_interface.hpp 454B
folder
generate 文件夹
folder
generator 文件夹
file
library_load_generator.hpp 1KB
file
interface_generator.hpp 947B
file
generator.hpp 1KB
file
generator_factory.hpp 480B
folder
process 文件夹
folder
symbol 文件夹
file
array_symbol.hpp 1KB
file
function_pointer_symbol.hpp 1KB
file
enum_symbol.hpp 1KB
file
reference_symbol.hpp 970B
file
fundamental_type_symbol.hpp 882B
file
record_symbol.hpp 2KB
file
lazy_symbol.hpp 3KB
file
typedef_symbol.hpp 1KB
file
function_symbol.hpp 2KB
folder
filters 文件夹
file
include_symbols_in_lib.hpp 641B
file
symbol_table.hpp 2KB
file
symbol.hpp 5KB
file
clang_facade.hpp 851B
file
symbol_factory.hpp 1KB
folder
utility 文件夹
file
type_erasure_base.hpp 2KB
file
error_codes.hpp 432B
file
exceptions.hpp 501B
file
logger.hpp 616B
...
zip 文件大小:53.94KB