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 里搞扩展,用这个工具能省下不少体力活,推荐一试。
                            
                            node-ffi-generator-master.zip
                            预估大小:62个文件
                        
                        
                        
                                
                                node-ffi-generator-master
                                文件夹
                            
                                                        
                                
                                source
                                文件夹
                            
                                                        
                                
                                generate
                                文件夹
                            
                                                        
                                
                                generate.cpp
                                2KB
                            
                                                        
                                
                                generator
                                文件夹
                            
                                                        
                                
                                library_load_generator.cpp
                                4KB
                            
                                                        
                                
                                generator_factory.cpp
                                2KB
                            
                                                        
                                
                                interface_generator.cpp
                                7KB
                            
                                                        
                                
                                process
                                文件夹
                            
                                                        
                                
                                symbol
                                文件夹
                            
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                            
                            
                                                        
                                ...                            
                                                    
                                        
                                    文件大小:53.94KB
                                
                                
                                
                            
评论区