{"_id":"node-ffi","_rev":"63-593095f12de32ba85026de3c74f3c88a","name":"node-ffi","description":"A foreign function interface (FFI) for Node.js","dist-tags":{"latest":"0.5.7"},"versions":{"0.1.1":{"name":"node-ffi","version":"0.1.1","author":{"name":"Rick Branson"},"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.2.0"},"main":"ffi","scripts":{"preinstall":"node-waf configure build","preuninstall":"node-waf clean","test":"node test.js"},"repository":{"type":"git","url":"http://github.com/rbranson/node-ffi.git"},"bugs":{"mail":"","web":"http://github.com/rbranson/node-ffi/issues"},"_id":"node-ffi@0.1.1","_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"https://registry.npmjs.org/node-ffi/-/node-ffi-0.1.1.tgz","shasum":"d83bb9a20049f96a25b9d87220c2d445f6079606","integrity":"sha512-CQVBvcwCVfzAUuweAbpRDwz1n+M0OC/4VHxakkobNQr23sa2EDRgu/VHm37D7f3yHQIajfJ+blmRoLWcXJtVQQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCxChpnGXItdoVEGi4vq8sps3nJcc5Z7Z+6n1VNjCpfUAIhANQzDhWK5FY0U+Hmvvlqw+Z/o/73TCxHSQlMEwpsGHok"}]},"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x"},"0.1.2":{"name":"node-ffi","version":"0.1.2","author":{"name":"Rick Branson"},"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.2.0"},"main":"node-ffi","scripts":{"preinstall":"node-waf configure build","preuninstall":"node-waf clean","test":"node test.js"},"repository":{"type":"git","url":"http://github.com/rbranson/node-ffi.git"},"bugs":{"mail":"","web":"http://github.com/rbranson/node-ffi/issues"},"_id":"node-ffi@0.1.2","_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"https://registry.npmjs.org/node-ffi/-/node-ffi-0.1.2.tgz","shasum":"091f2d40c5050334f32f66fafd544768cdee9184","integrity":"sha512-WRm+BlIMBOShTxNvddxWoCq/QtAuVsAc5QLG43O387uHTh+ZCt/19LfMtgats0ezt0Z18gJ0aUk3g2Y0eEPRgg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICc9jzQDHlnXIZRN+u0hQEmDBOcbl5mduSz+PMGd34QxAiEAgd++F25vmVuVigmx+FqSDCkZXPHFqR20Dm8tbm4csnA="}]},"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x"},"0.2.0":{"name":"node-ffi","version":"0.2.0","author":{"name":"Rick Branson"},"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.2.0"},"modules":{"index":"./lib/ffi"},"scripts":{"preinstall":"node-waf configure build","preuninstall":"node-waf clean","test":"node test/test.js"},"repository":{"type":"git","url":"http://github.com/rbranson/node-ffi.git"},"bugs":{"mail":"","web":"http://github.com/rbranson/node-ffi/issues"},"_id":"node-ffi@0.2.0","_nodeSupported":true,"_npmVersion":"0.2.3-6","_nodeVersion":"v0.2.5","dist":{"tarball":"https://registry.npmjs.org/node-ffi/-/node-ffi-0.2.0.tgz","shasum":"f741e0a1c65caa37a1a973f3fa99e5c0a55fcb11","integrity":"sha512-Sz5H4IzCVzPyJqS8gjJNbpZhI16FopXKSd0YigrbiRU2Rgl6pZqvujsAwXkG5rieGsn0vxoSJN62unR5zH8JWA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID0BhtWvn2Mc7tB2nD6GyNaTxLV+Nh2/aAJO8vLiGAg1AiBYH/ZJ23cY7lj90yTAW9d3MTcHlJGAHSSUjzrRNEJSCg=="}]},"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x"},"0.2.1":{"name":"node-ffi","version":"0.2.1","author":{"name":"Rick Branson"},"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.4.0"},"main":"./lib/ffi","scripts":{"preinstall":"node-waf configure build","preuninstall":"node-waf clean","test":"node test/test.js"},"repository":{"type":"git","url":"git://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"_id":"node-ffi@0.2.1","_engineSupported":true,"_npmVersion":"0.3.18","_nodeVersion":"v0.4.7","directories":{"lib":"./lib","doc":"./doc"},"files":[""],"_defaultsLoaded":true,"dist":{"shasum":"e86935cda619e29d45a17bc59842bdeaaac6b088","tarball":"https://registry.npmjs.org/node-ffi/-/node-ffi-0.2.1.tgz","integrity":"sha512-TCl+vIOLha8CFt0HLakZnlIdjwyPnZXYyN9dSim97lqVyDiBXuTjRlM8KcIeEYb95jU9Qnd5Kslmz3nMezyDdw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCWT1tMMmyoNxf1OsWPWjwgzrA5kPYOsFP1t/Mm0J8daQIhAK5hJzWKtkGetewdnq1uQo+SRM7DlUpN0lWFLoinFHgw"}]},"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x"},"0.2.2":{"name":"node-ffi","version":"0.2.2","author":{"name":"Rick Branson"},"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.4.0"},"main":"./lib/ffi","scripts":{"preinstall":"node-waf configure build","preuninstall":"node-waf clean","test":"node test/test.js"},"repository":{"type":"git","url":"git://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"_npmJsonOpts":{"file":"/Users/rbranson/.npm/node-ffi/0.2.2/package/package.json","contributors":false,"serverjs":false,"wscript":true},"_id":"node-ffi@0.2.2","dependencies":{},"devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.26","_nodeVersion":"v0.4.11","_defaultsLoaded":true,"dist":{"shasum":"d7117e929bf1381785465db4330a427f95478ec1","tarball":"https://registry.npmjs.org/node-ffi/-/node-ffi-0.2.2.tgz","integrity":"sha512-DcU7At7va2fmQ9NfnIeIFNl9yo9wCRWs+EQIQDNsQJ1BXJwzbtKnpGjUWHoY7g61OK4vSTz5UjDolK/ZLkxEKA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH2cCNoeNwkbmR99dcztMGwqqm+DfbaEFFYgcBuUIL7wAiAs9S80R+4WHyDK50oQHwRVSM7O2GL2DnFB6aqjbKPdLw=="}]},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"}],"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x"},"0.3.0":{"name":"node-ffi","version":"0.3.0","author":{"name":"Rick Branson"},"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.4.0"},"main":"./lib/ffi","scripts":{"preinstall":"node-waf configure build","preuninstall":"node-waf clean","test":"node test/test.js"},"repository":{"type":"git","url":"git://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"_npmJsonOpts":{"file":"/Users/rbranson/.npm/node-ffi/0.3.0/package/package.json","contributors":false,"serverjs":false,"wscript":true},"_id":"node-ffi@0.3.0","dependencies":{},"devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.26","_nodeVersion":"v0.4.11","_defaultsLoaded":true,"dist":{"shasum":"84a34021d39dedfa8c0704236d0d9f68182affaa","tarball":"https://registry.npmjs.org/node-ffi/-/node-ffi-0.3.0.tgz","integrity":"sha512-by/JIRVVZeC57jJGv9A8ILRfOmW2PXxaCG7OAiJhD7EAPwwzBqzmszhlKiIZVteoMnLZHSdAgq/wPwm9mxSkFw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD1zyHi5Ys2Lf5t9BGr/T+l2C/uc3zJ5MUbbYPCqXtDdgIhAMx3Q4vxsseivGNMzNM5luxdonKJlswGgH4F4g4Mp39p"}]},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"}],"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x"},"0.3.1":{"name":"node-ffi","version":"0.3.1","author":{"name":"Rick Branson"},"contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.4.0"},"main":"./lib/ffi","scripts":{"preinstall":"node-waf configure build","preuninstall":"node-waf clean","test":"node test/test.js"},"repository":{"type":"git","url":"git://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"_npmJsonOpts":{"file":"/Users/rbranson/.npm/node-ffi/0.3.1/package/package.json","contributors":false,"serverjs":false,"wscript":true},"_id":"node-ffi@0.3.1","dependencies":{},"devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.26","_nodeVersion":"v0.4.11","_defaultsLoaded":true,"dist":{"shasum":"e389bbb0d07d35650edc557585de2b6b34f367f4","tarball":"https://registry.npmjs.org/node-ffi/-/node-ffi-0.3.1.tgz","integrity":"sha512-3CpXe0WbnVlQtESrJMW8kDJKcYI3kHRBGjDnPyODqtyujBEJFlhLiiDeOVeGnIU+YskeoVIdZgQy/WpG1PRK6Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBRYWi43RreboArZoz+t4jYc7aUT+hBTt7hGHrt1FimBAiAlkb7p+DCRisUDE7+Fxg+HzF8quA57UWazkmM4/3NH0g=="}]},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"}],"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x"},"0.3.2":{"name":"node-ffi","version":"0.3.2","author":{"name":"Rick Branson"},"contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.4.0"},"main":"./lib/ffi","scripts":{"preinstall":"node-waf configure build","preuninstall":"node-waf clean","test":"node test/test.js"},"repository":{"type":"git","url":"git://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"_npmJsonOpts":{"file":"/Users/rbranson/.npm/node-ffi/0.3.2/package/package.json","contributors":false,"serverjs":false,"wscript":true},"_id":"node-ffi@0.3.2","dependencies":{},"devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.26","_nodeVersion":"v0.4.11","_defaultsLoaded":true,"dist":{"shasum":"828988b5fb3ce722dcef201c062465f205e84d43","tarball":"https://registry.npmjs.org/node-ffi/-/node-ffi-0.3.2.tgz","integrity":"sha512-/lUU0mX8m5OVumcfUSszxlXyCJ+wkwTTxg2gjdDECPHRvKAk2jwFLyaH8caZXymJo4ME2xfjkR+uTPT4mwN4tQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCn2wl0kwLAvpr4Cuhmb105HaOE17Gra2lSdb3CCieCigIgXOX/NAzfB3oB02i4idbjKy5om6gb7HxCHUepBUOehJU="}]},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"}],"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x"},"0.4.0":{"name":"node-ffi","version":"0.4.0","author":{"name":"Rick Branson"},"contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.4.0"},"main":"./lib/ffi","scripts":{"preinstall":"node-waf configure build","preuninstall":"node-waf clean","test":"node test/test.js"},"repository":{"type":"git","url":"git://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"_npmJsonOpts":{"file":"/Users/rbranson/.npm/node-ffi/0.4.0/package/package.json","contributors":false,"serverjs":false,"wscript":true},"_id":"node-ffi@0.4.0","dependencies":{},"devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.26","_nodeVersion":"v0.4.11","_defaultsLoaded":true,"dist":{"shasum":"aaf6f11bc14c8465cf5f3b18f78c4872418e8039","tarball":"https://registry.npmjs.org/node-ffi/-/node-ffi-0.4.0.tgz","integrity":"sha512-tHhstwvmDnvydf/YxaOXT6QtdHY97WgBvXWCnwA8cJe1R92132Elr8Sqb7B9EuDw0nxrO//93fWIEbC1eKsREQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIENcQkjqX5Mc3uJ1yVH9Hm+I2WS1b3p0n/huhv/3LbJsAiBXfJgzI0Drkzu+arl9xa9EydhWS9CklMPLduWdvnw2iQ=="}]},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"}],"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x"},"0.4.1":{"name":"node-ffi","version":"0.4.1","author":{"name":"Rick Branson"},"contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.4.0"},"main":"./lib/ffi","scripts":{"preinstall":"node-waf configure build","preuninstall":"node-waf clean","test":"node test/test.js"},"repository":{"type":"git","url":"git://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"_npmJsonOpts":{"file":"/Users/rbranson/.npm/node-ffi/0.4.1/package/package.json","contributors":false,"serverjs":false,"wscript":true},"_id":"node-ffi@0.4.1","dependencies":{},"devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.26","_nodeVersion":"v0.4.11","_defaultsLoaded":true,"dist":{"shasum":"38e3ca8de8e7d4f8909787e695626aeda519faa5","tarball":"https://registry.npmjs.org/node-ffi/-/node-ffi-0.4.1.tgz","integrity":"sha512-YKwhLJYJ/KLqrbSmz0W51yPWBHCTb80AlZo1/rkrmeGCueR4x8HjEgxAAg5KUFfeM5Jo1joUlK7c8MlD/nMdFA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD4jGWwLvyFsGIg2OLahduSnyzPXXt+CzKWBi5NYEUsKwIhAJHTb6DAKP+LDKLVIeJZSara2mWrahJnHkU6srIANoKs"}]},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"}],"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x"},"0.4.2":{"name":"node-ffi","version":"0.4.2","author":{"name":"Rick Branson"},"contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.4.0"},"main":"./lib/ffi","scripts":{"preinstall":"node-waf configure build","preuninstall":"node-waf clean","test":"node test/test.js"},"repository":{"type":"git","url":"git://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"_npmUser":{"name":"rbranson","email":"rick@diodeware.com"},"_id":"node-ffi@0.4.2","dependencies":{},"devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.104","_nodeVersion":"v0.4.11","_defaultsLoaded":true,"dist":{"shasum":"84bf2f7327b508f8c24062558b67811fa834b522","tarball":"https://registry.npmjs.org/node-ffi/-/node-ffi-0.4.2.tgz","integrity":"sha512-Cjbttkf5MqQLDVugoXV+FElM5Vx11i8wKr9jTxt15DPXFZSL4d+bjDCz14mipQAaQaIYyd/a1k60QkHKFtodEA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDCYkIQjq+UuKfMScrjTIbw2QSvO+Yf+EPxR8dwOdNyrAiBhXFxb9YsvAOWK0T0nDpj7I3iCHFg9IwiaS7OLaH1big=="}]},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"}],"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x"},"0.5.0":{"name":"node-ffi","version":"0.5.0","author":{"name":"Rick Branson"},"contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.6.0"},"main":"./lib/ffi","devDependencies":{"expect.js":"*","mocha":"*"},"scripts":{"test":"node --expose-gc ./node_modules/mocha/bin/_mocha"},"repository":{"type":"git","url":"git://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"_npmUser":{"name":"rbranson","email":"rick@diodeware.com"},"_id":"node-ffi@0.5.0","dependencies":{},"_engineSupported":true,"_npmVersion":"1.1.0-beta-10","_nodeVersion":"v0.6.7","_defaultsLoaded":true,"dist":{"shasum":"aada5ba82a754fba489561ea8a3ffab6cb9b6830","tarball":"https://registry.npmjs.org/node-ffi/-/node-ffi-0.5.0.tgz","integrity":"sha512-7DGnfRCpRWA0VSvPs0X60K0DIYC96uE+m99Q08FWA7KTScHNPzaWP4z+xqpSb9j7aTuJGwBZ9PMgn/h45pVUiw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDgKpVfQ8XlnrBVkT9moUNP0OMrzD8mL3RoS5W9Gs8ScQIgLLtdAhHgHts2vzq/ls9yNl1BW8YGwj+wAfg1lVm5lx8="}]},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"}],"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x"},"0.5.1":{"name":"node-ffi","version":"0.5.1","author":{"name":"Rick Branson"},"contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.6.0"},"main":"./lib/ffi","dependencies":{"bindings":"*"},"devDependencies":{"expect.js":"*","mocha":">= 0.10.x"},"scripts":{"test":"mocha -gc --reporter spec","install":"node-gyp rebuild"},"repository":{"type":"git","url":"git://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"_npmUser":{"name":"tootallnate","email":"nathan@tootallnate.net"},"_id":"node-ffi@0.5.1","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.10","_nodeVersion":"v0.6.14","_defaultsLoaded":true,"dist":{"shasum":"c0b63796c9a0355c59377429b15f5400a4cb8126","tarball":"https://registry.npmjs.org/node-ffi/-/node-ffi-0.5.1.tgz","integrity":"sha512-1Uh0ZueRamg4jIwfz1vsst4sdvnta07N9Gg9KfV9peGufxCTEe+bpQWlQCN8Y2R/+7Si1pJS+vWKX5eaJAul0g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDB2wK1hiViZfmujd5lR6Ik0TNKsVQrloTJUFertg9VjgIhAIfWvUg9swOF3/wB6SRIi5Ey2yHOWb9sqkAKkuhjV0th"}]},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"TooTallNate","email":"nathan@tootallnate.net"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x"},"0.5.1-1":{"name":"node-ffi","version":"0.5.1-1","author":{"name":"Rick Branson"},"contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.6.0"},"main":"./lib/ffi","dependencies":{"bindings":"*"},"devDependencies":{"expect.js":"*","mocha":">= 0.10.x"},"scripts":{"test":"mocha -gc --reporter spec","install":"node-gyp rebuild"},"repository":{"type":"git","url":"git://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"_npmUser":{"name":"tootallnate","email":"nathan@tootallnate.net"},"_id":"node-ffi@0.5.1-1","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.10","_nodeVersion":"v0.6.14","_defaultsLoaded":true,"dist":{"shasum":"591794d420a07f4834e5cec0b653711157178c4f","tarball":"https://registry.npmjs.org/node-ffi/-/node-ffi-0.5.1-1.tgz","integrity":"sha512-Rj5cRGsyq6lrXSvQ8Xu26HCouqHgdLNl43aXE0w22oG02j1tEsazOmC5ikNu4l5cdVWEKDRCzVb2HCeXo47vIA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDY3I40BbLXwRH2W+ScJhorkE1aVx3KCdUnN7AnhV9XwAiEAv6wcwgQ4yRh9/d8dSHxw2yctECuIq6FtrI8X+3EtAKk="}]},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"TooTallNate","email":"nathan@tootallnate.net"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x"},"0.5.2":{"name":"node-ffi","version":"0.5.2","author":{"name":"Rick Branson"},"contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.6.0"},"main":"./lib/ffi","dependencies":{"bindings":"*"},"devDependencies":{"expect.js":"*","mocha":">= 0.10.x"},"scripts":{"test":"mocha -gc --reporter spec","install":"node-gyp rebuild"},"repository":{"type":"git","url":"git://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"_npmUser":{"name":"tootallnate","email":"nathan@tootallnate.net"},"_id":"node-ffi@0.5.2","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.16","_nodeVersion":"v0.7.7","_defaultsLoaded":true,"dist":{"shasum":"c02ad84da27133be851a321a348729f0d14fd8f0","tarball":"https://registry.npmjs.org/node-ffi/-/node-ffi-0.5.2.tgz","integrity":"sha512-nauxFC2zNqo3EkWrIeuiZhmI4l4Ezyr018HXQvxXDPIBwpDpM35Uvfpc66YLXC1agTAMYze4s/stlUd/AonlUA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHtklN/VznyGBrv0mPrS5MYeoyYudci2/ZMajeAuxmuPAiBGwMtnFr0HKOJBhs57bDoHNlJTEOpVw30tHIjipmoHyA=="}]},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"TooTallNate","email":"nathan@tootallnate.net"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x"},"0.5.3":{"name":"node-ffi","version":"0.5.3","author":{"name":"Rick Branson"},"contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.6.0"},"main":"./lib/ffi","dependencies":{"bindings":"*"},"devDependencies":{"expect.js":"*","mocha":">= 0.10.x"},"scripts":{"test":"mocha -gc --reporter spec","install":"node-gyp rebuild"},"repository":{"type":"git","url":"git://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"_npmUser":{"name":"tootallnate","email":"nathan@tootallnate.net"},"_id":"node-ffi@0.5.3","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.16","_nodeVersion":"v0.7.8","_defaultsLoaded":true,"dist":{"shasum":"2079c9a035326f9acee5a471d59f5459343c0a9c","tarball":"https://registry.npmjs.org/node-ffi/-/node-ffi-0.5.3.tgz","integrity":"sha512-NPteQp1QSVN2sGfEYyyoVrQbCx+PFBTKGgd6ahbrXkeAay/Usi2oEzPG7+KmALvIh0OkGUCee77L3qhMhCi+9Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDsYoFOtWXDCs8Dtohaj9gmtH3a1Xj8oQdjfb1UtwKqigIgGFkQZqz9weKaOavEcFpfL+yPSku8yZe1vkUO4axIHqc="}]},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"TooTallNate","email":"nathan@tootallnate.net"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x"},"0.5.4":{"name":"node-ffi","version":"0.5.4","author":{"name":"Rick Branson"},"contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.6.0"},"main":"./lib/ffi","dependencies":{"bindings":"*"},"devDependencies":{"expect.js":"*","mocha":">= 0.10.x"},"scripts":{"test":"mocha -gc --reporter spec","install":"node-gyp rebuild"},"repository":{"type":"git","url":"git://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"_npmUser":{"name":"tootallnate","email":"nathan@tootallnate.net"},"_id":"node-ffi@0.5.4","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.18","_nodeVersion":"v0.6.18","_defaultsLoaded":true,"dist":{"shasum":"73e7fe47affa11912700b7e3f6f0170b8ae56356","tarball":"https://registry.npmjs.org/node-ffi/-/node-ffi-0.5.4.tgz","integrity":"sha512-J+qoOCpw+4cKaI2158Anu1z4oTNJQOL55lSzi4hb55rqz6VFLOtC6kghRaQ+ZqS5L9x+PoaciLvcVJEGSZZqzw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICwUlo2uxyJO0KjXtuCSuhHKDrMpk321aCOl1rgrHUr/AiADpzHcItUAFSnpYqWWYYU1xqJulSN5/nJL+mdbnanZdA=="}]},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"TooTallNate","email":"nathan@tootallnate.net"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x"},"0.5.5":{"name":"node-ffi","version":"0.5.5","author":{"name":"Rick Branson"},"contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.6.0"},"main":"./lib/ffi","dependencies":{"bindings":"*"},"devDependencies":{"expect.js":"*","mocha":">= 0.10.x"},"scripts":{"test":"mocha -gc --reporter spec","install":"node-gyp rebuild"},"repository":{"type":"git","url":"http://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"gypfile":true,"_id":"node-ffi@0.5.5","dist":{"shasum":"113e310d883dc737ef406d71167a5984cbc0e2cd","tarball":"https://registry.npmjs.org/node-ffi/-/node-ffi-0.5.5.tgz","integrity":"sha512-KHVgHfYaqdmTnmA3qb6L3HVQxx3NjN0v1p0IwPtWedCznHXh12ujNGYHsOyurQqJxS/GjApftjiSIk20IF67Uw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDYTQYbNLLIJ16IfAliaFCETMeDrTaIg482oIW98t4xuwIgZG+dzC7/bUBlRvE6TQRgIgNCgPc6WYmax1gquV4ciXs="}]},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"TooTallNate","email":"nathan@tootallnate.net"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x"},"0.5.6":{"name":"node-ffi","version":"0.5.6","author":{"name":"Rick Branson"},"contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.6.0"},"main":"./lib/ffi","dependencies":{"bindings":"*"},"devDependencies":{"expect.js":"*","mocha":">= 0.10.x"},"scripts":{"test":"mocha -gc --reporter spec","install":"node-gyp rebuild"},"repository":{"type":"git","url":"http://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"gypfile":true,"_id":"node-ffi@0.5.6","dist":{"shasum":"d5de187f3ec5a36583ac990f9fcb7d2a8c30eadb","tarball":"https://registry.npmjs.org/node-ffi/-/node-ffi-0.5.6.tgz","integrity":"sha512-RdL2VRthjQ5RERFPehyI/Kd2LeCsh4iw+d3nsxInTwt5GFLy5hxSLVLfx+W1rdfU3v6slFtsp5Q+y9tm+TeDQA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEGNM41GXXWjiGbuXM2NJ4BPl34HF3YtSy4pkBFpmeB2AiEA2d9lqjh7Eh0HrgoK1eT6UC30ucjUG2eL7v74ll/X1V4="}]},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"tootallnate","email":"nathan@tootallnate.net"},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"TooTallNate","email":"nathan@tootallnate.net"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x"},"0.5.7":{"name":"node-ffi","version":"0.5.7","author":{"name":"Rick Branson"},"contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.6.0"},"main":"./lib/ffi","dependencies":{"bindings":"*"},"devDependencies":{"expect.js":"*","mocha":">= 0.10.x"},"scripts":{"test":"mocha -gc --reporter spec","install":"node-gyp rebuild"},"repository":{"type":"git","url":"http://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"gypfile":true,"_id":"node-ffi@0.5.7","dist":{"shasum":"c80f7c4bc7912f4f4c601a7a340c3c09b6834ece","tarball":"https://registry.npmjs.org/node-ffi/-/node-ffi-0.5.7.tgz","integrity":"sha512-UapnsnhaFyBA9AsGWbNhmQQDhauV2YTOysTfivJJmYK14jeygqO/V8gWg3bpVrenQ9tLxqrBCJ6hHWIIxCteEw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDtmz4apnUiKJf9BSEOryYlniHVfmYAc6zgpZWBJU273AiBlwGVCjr8uch37ZZtgWfUHEczQd4L/v+rqvbu00GEFag=="}]},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"tootallnate","email":"nathan@tootallnate.net"},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"TooTallNate","email":"nathan@tootallnate.net"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x"}},"maintainers":[{"email":"rick@diodeware.com","name":"rbranson"},{"email":"nathan@tootallnate.net","name":"tootallnate"}],"author":{"name":"Rick Branson"},"repository":{"type":"git","url":"http://github.com/rbranson/node-ffi.git"},"time":{"modified":"2022-06-21T14:36:03.533Z","created":"2011-04-28T17:19:08.239Z","0.1.1":"2011-04-28T17:19:08.239Z","0.1.2":"2011-04-28T17:19:08.239Z","0.2.0":"2011-04-28T17:19:08.239Z","0.2.1":"2011-04-28T17:19:08.239Z","0.2.2":"2011-08-23T18:20:43.456Z","0.3.0":"2011-09-07T04:10:11.917Z","0.3.1":"2011-09-16T03:36:40.426Z","0.3.2":"2011-09-17T05:10:39.950Z","0.4.0":"2011-09-19T18:17:28.788Z","0.4.1":"2011-09-29T03:32:59.545Z","0.4.2":"2011-11-07T17:24:30.402Z","0.5.0":"2012-01-12T18:02:12.905Z","0.5.1":"2012-04-07T19:18:32.931Z","0.5.1-1":"2012-04-07T19:36:06.888Z","0.5.2":"2012-04-15T23:49:04.206Z","0.5.3":"2012-04-22T17:28:51.482Z","0.5.4":"2012-05-25T17:54:05.621Z","0.5.5":"2012-06-27T03:50:48.199Z","0.5.6":"2013-03-31T21:50:01.325Z","0.5.7":"2013-03-31T21:54:41.172Z"},"users":{"tommyzzm":true,"yakun.cyk":true,"cocopas":true,"goatandsheep":true,"monolithed":true},"readme":"node-ffi\n========\n### Node.js Foreign Function Interface [![Build Status](https://secure.travis-ci.org/rbranson/node-ffi.png)](http://travis-ci.org/rbranson/node-ffi)\n\n`node-ffi` is a Node.js addon for loading and calling dynamic libraries using pure JavaScript. It can be used to create bindings to native libraries without writing any C++ code.\n\nIt also simplifies the augmentation of node.js with C code as it takes care of handling the translation of types across JavaScript and C, which can add reams of boilerplate code to your otherwise simple C. See the `example/factorial` for an example of this use case.\n\n**WARNING**: node-ffi assumes you know what you're doing. You can pretty easily create situations where you will segfault the interpreter and unless you've got C debugger skills, you probably won't know what's going on.\n\n# EXAMPLE\n\n``` js\nvar ffi = require(\"node-ffi\");\n\nvar libm = new ffi.Library(\"libm\", { \"ceil\": [ \"double\", [ \"double\" ] ] });\nlibm.ceil(1.5); // 2\n\n// You can also access just functions in the current process by passing a null\nvar current = new ffi.Library(null, { \"atoi\": [ \"int32\", [ \"string\" ] ] });\ncurrent.atoi(\"1234\"); // 1234\n```\n\n# REQUIREMENTS\n\n * Linux, OS X, Windows, or Solaris.\n * `libffi` comes bundled with node-ffi, it does not need to be installed on your system.\n * The current version is tested to run on node 0.6.x.\n * If you need node 0.4.x support, use the `0.4` branch of node-ffi.\n\n# NPM INSTALL\n\n``` bash\n$ npm install node-ffi\n```\n\nMost popular operating systems have a pre-compiled binary that comes along with node-ffi, so most of the time you will not need to compile anything! (Unless of course you want to, then see below).\n\n# SOURCE INSTALL / MANUAL COMPILATION\n\nTo compile from source it's easiest to use\n[`node-gyp`](https://github.com/TooTallNate/node-gyp):\n\n``` bash\n$ npm install -g node-gyp\n```\n\nNow you can compile `node-ffi`:\n\n``` bash\n$ git clone git://github.com/rbranson/node-ffi.git\n$ cd node-ffi\n$ node-gyp configure build\n```\n\n# TYPES\n\n    int8        Signed 8-bit Integer\n    uint8       Unsigned 8-bit Integer\n    int16       Signed 16-bit Integer\n    uint16      Unsigned 16-bit Integer\n    int32       Signed 32-bit Integer\n    uint32      Unsigned 32-bit Integer\n    int64       Signed 64-bit Integer\n    uint64      Unsigned 64-bit Integer\n    float       Single Precision Floating Point Number (float)\n    double      Double Precision Floating Point Number (double)\n    pointer     Pointer Type\n    string      Null-Terminated String (char *)\n\nIn addition to the basic types, there are type aliases for common C types.\n\n    byte        unsigned char\n    char        char\n    uchar       unsigned char\n    short       short\n    ushort      unsigned short\n    int         int\n    uint        unsigned int\n    long        long\n    ulong       unsigned long\n    longlong    long\n    ulonglong   unsigned long long\n    size_t      platform-dependent, usually pointer size\n\n# V8 and 64-bit Types\n\nInternally, V8 stores integers that will fit into a 32-bit space in a 32-bit integer, and those that fall outside of this get put into double-precision floating point numbers. This is problematic because FP numbers are imprecise. To get around this, the methods in node-ffi that deal with 64-bit integers return strings and can accept strings as parameters.\n\n# Call Overhead\n\nThere is non-trivial overhead associated with FFI calls. Comparing a hard-coded binding version of `strtoul()` to an FFI version of `strtoul()` shows that the native hard-coded binding is 5x faster. So don't just use the C version of a function just because it's faster. There's a significant cost in FFI calls, so make them worth it.\n\n# LICENSE\n\nMIT License. See the `LICENSE` file.\n\n","readmeFilename":"README.md","homepage":"http://github.com/rbranson/node-ffi","contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"}}